Connect_System_Design_Flashcards

(33 cards)

1
Q

$.External Attributes

A

Key value pairs returned by a Lambda invoke block in Connect. Only available after the Lambda runs successfully. Persist until another Lambda is invoked in the flow. If the Lambda errors

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

$.Attributes

A

Contact attributes already stored on the contact. Set by Set Contact Attributes blocks

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Storing a Lambda ARN vs Invoking It

A

Storing an ARN in a Set Contact Attributes block just saves the ARN string as text on the contact. It does not execute the Lambda. You need an Invoke Lambda block to actually call it. Common pattern is to store ARNs early in the flow so modules can reference them dynamically later.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

STRING_MAP Response Validation

A

Setting on a Lambda invoke block that tells Connect to expect a flat key value map where every value is a string. If any value in the Lambda response is undefined or null

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Set Contact Attributes Block

A

Block that writes key value pairs to the contact. Can read from $.External (Lambda response)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Contact Attribute Overwrite Risk

A

Any Set Contact Attributes block in any flow or module can overwrite any user defined attribute. There is no protection. If a downstream module writes AccountName = empty it wipes whatever an earlier flow set. Hard to catch without tracing the full path in CloudWatch logs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

CultureCode Branching

A

Pattern where a Check Contact Attributes block reads the CultureCode attribute and branches the contact to different paths based on language. Each language path (en-US

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

HostedWidget Attributes

A

Participant attributes passed in by the chat widget through the StartChatContact API. Available as $.Attributes.HostedWidget-* before the first block in the flow runs. Not set by any block in the flow. Includes accountId

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

HostedWidget-accountId

A

The AccountId passed by the chat widget when the customer starts a chat. Identifies which client or brand the customer is chatting from. Available immediately on contact initiation before any flow block runs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

HostedWidget-culture

A

The language and culture code passed by the chat widget. Values like en-US

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Account Lookup Pattern

A

Lambda invoke block takes AccountId as input and queries DynamoDB by AccountId and Dnis = Chat. Returns account config including AccountName. A Set Contact Attributes block then maps the Lambda response from $.External to user defined contact attributes so the values persist in the CTR.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Pre-Branch Lookup Placement

A

Account lookup should happen before any language or region branching in the flow. If the lookup is inside a specific branch like en-GB only

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Connect Flow Logs

A

CloudWatch log entries that show block by block execution of a Connect flow. Each entry includes contact ID

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Lambda Logs vs Flow Logs

A

Lambda logs show what happened inside the Lambda function including input

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Contact Trace Record (CTR)

A

Record generated for every completed contact. Contains all contact attributes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

PathLog Attribute

A

A user defined attribute that logs the path a contact takes through flow modules. Each entry is a module or decision point. Useful for tracing where a contact entered

17
Q

ConfigurationByDNIS Lambda

A

Lambda designed for voice contacts. Looks up account config by DNIS (phone number). For chat contacts there is no phone number so it may return empty results. Used in voice path and some UK modules. Different from configurationByAccountId which uses AccountId.

18
Q

configurationByAccountId Lambda

A

Lambda that takes AccountId as input and queries a DynamoDB table by AccountID-index where Dnis = Chat. Returns AccountName and full account config including RoutingType

19
Q

DynamoDB Table Name as Environment Variable

A

Lambda functions store their target DynamoDB table name as an environment variable usually called DYNAMODB_TABLE_NAME. Check this in the Lambda console under Configuration then Environment variables to find which table the Lambda reads from.

20
Q

Test Chat Tool in Connect

A

Built-in testing tool under Channels in the Connect console. Allows setting the Contact Flow and Contact Attributes as JSON to simulate a real chat. Useful when hosted widget URLs are not accessible in lower environments like qa1.

21
Q

Test Chat Contact Attributes Format

A

Flat JSON object with key value pairs. Simulates widget attributes. Example: {“HostedWidget-accountId”:”ff464f63”

22
Q

Before and After Testing Pattern

A

Revert to old flow and run a test to get a CTR confirming broken behavior (before record). Publish the fix and run the same test with same settings to get a CTR confirming the fix (after record). Timestamps prove which flow version generated each result.

23
Q

Lambda Null Check Bug Pattern

A

When Lambda code accesses a property on a value that might be undefined without checking first. Example: currentPageURL.indexOf(“/wize-chat”) crashes with TypeError if currentPageURL is undefined. Always check for null or undefined before calling methods on variables.

24
Q

Error Handling for Optional Lambda Invokes

A

Wire the error output of the Lambda invoke block to the same next block as the success output. If the Lambda fails the flow continues normally. The optional attribute like AccountName stays null but the chat is not broken for the customer.

25
Flow Rollback in Connect
Open the flow in the designer and click the Audit history dropdown. Select the previous published version and republish it. Connect keeps version history so you can always go back. No need for screenshots of the old wiring.
26
QA1 vs Prod Data Gaps
Lower environments like qa1 often have incomplete or stale DynamoDB data compared to prod. A Lambda that works in prod might return empty in qa1 because the table is missing records. Always verify table contents when testing in lower environments.
27
CFT Overwrite Risk
If a Connect flow is managed by CloudFormation and you make a manual change in prod
28
Downstream Module Overwrite
A flow module that runs after the landing flow can overwrite contact attributes set earlier. Example: WizeConnect_Welcome_UK_ChatV2 has a Set Client Id block that writes AccountId
29
$.External Persistence Across Blocks
$.External values from a Lambda response persist until another Lambda invoke block is executed. If you move a Lambda invoke earlier in the flow
30
Custom Contact Attribute Filter in Contact Search
In Contact search click Add filter and select Custom contact attribute. Enter a key (like AccountId or AccountName) and a value to filter contacts that have that specific attribute set. Useful for finding working vs broken contacts in the same date range.
31
Environment Specific Lambda ARNs
Each environment has its own Lambda functions with environment suffix in the name. Example: configurationByAccountId-prod-01-v2 vs configurationByAccountId-qa1-01-v1. The flow stores the correct ARN per environment in the PROD Set Lex and Lambda Attributes block or equivalent.
32
Connect Instance ID
Unique identifier for a Connect instance. Found in the AWS console or in contact attributes as aws:connect:instanceId. Different per environment. Used to scope IAM policies
33
Chat Channel vs Voice Channel in Connect Flows
Same landing flow can handle both channels. Use a Check Contact Attributes block checking $.Channel to branch CHAT vs VOICE. Chat contacts get attributes from the widget. Voice contacts get attributes from DNIS and system endpoint. Different Lambdas may be needed for each.