What is environment parameterization in Connect flows?
Using the Connect instance ARN to detect which environment (dev/QA/UAT/prod) the flow is running in, then setting all resource ARNs to match. Same flow works everywhere - no changes needed per environment.
Why did L set 112 contact attributes with ARNs at the start of the flow?
So every Lambda, Lex bot, and DynamoDB table referenced downstream points to the correct environment. Flow detects its own Connect instance ARN → sets all resource ARNs for that environment → every block downstream uses those attributes instead of hardcoded values.
What’s the FIRST thing the flow does to figure out which environment it’s in?
It reads its own Connect instance ARN. Each environment (dev, QA, UAT, prod) has a different Connect instance with a different ARN. The ARN tells the flow where it is.
After the flow knows which environment it’s in what does it do next?
Sets 100+ contact attributes pointing to the correct resource ARNs - the right Lambda ARNs, Lex bot ARNs, DynamoDB table names. Everything downstream references these attributes.
Why NOT just hardcode Lambda ARNs directly in each flow block?
You’d need separate flow versions for dev, QA, UAT, and prod. Every update means updating 4 flows. With parameterization one flow works everywhere - DevOps deploys the same thing to every environment.
How does environment parameterization help the DevOps pipeline?
Pipeline stays simple - deploy the same flow to every Connect instance. No environment-specific flow versions. No risk of deploying a dev Lambda ARN to prod. The flow figures out the right resources on its own.
What’s the Lambda equivalent of environment parameterization?
Environment variables. Instead of hardcoding a DynamoDB table name in code, store it in TABLE_NAME env var. Same Lambda code runs in dev and prod - only the env var value changes per environment.
What’s the CDK equivalent of environment parameterization?
CDK parameterization with environment-specific configs. Pass different values (account ID, region, table names) per environment. Same CDK code, different configs for dev/staging/prod.
What does a Connect instance ARN look like?
arn:aws:connect:us-east-1:123456789012:instance/abc-def-123. The account ID and instance ID are unique per environment - that’s how the flow knows if it’s in dev, QA, UAT, or prod.
If you deploy the same flow to dev and prod how do the Lambda calls go to different functions?
Flow reads its Connect ARN → detects it’s in prod → sets contact attributes with prod Lambda ARNs → every Invoke Lambda block references those attributes. In dev, same flow reads a different ARN → sets dev Lambda ARNs instead.
What’s the config-driven approach and how does it connect to parameterization?
Same idea - changes are config updates, not code changes. Update a DynamoDB table or environment variable instead of rewriting and redeploying. Parameterization, env vars, and DynamoDB configs are all config-driven patterns.
Phone number disconnecting 100% of calls - what’s Step 1?
Phone Numbers page → find the number → confirm it’s mapped to a flow. If it’s not mapped to anything, that’s your problem right there.
Phone number is mapped to a flow - what’s Step 2?
Open that flow → read it block by block from the entry point. Understand what the flow is SUPPOSED to do before you start looking at logs.
You’re reading the flow and see a Lambda invoke - what’s Step 3?
Identify where the flow could fail. Lambda timeout? Missing DynamoDB data? Bad error handling? Look at what the Lambda should return and where the error branch goes.
You suspect the prompt Lambda is the issue - what’s Step 4?
Go to Lambda console → find that specific function → read the code. Look at index.js (handler) and the services folder (business logic). Understand what it does before checking logs.
How do you find which DynamoDB table a Lambda is querying?
Lambda console → Configuration tab → Environment Variables → look for TABLE_NAME or DYNAMODB_TABLE. That’s your table. Then go to DynamoDB console and pull it up.
What does a missing prompt look like in production?
Lambda queries DynamoDB for a prompt key → gets nothing back → returns empty or null → flow tries to play empty prompt → caller hears silence → disconnect. Fix: add the missing prompt entry to DynamoDB.
When do you check CloudWatch Logs in troubleshooting?
AFTER you understand the flow, the Lambda code, and the DynamoDB data. Logs confirm what you suspect - don’t go there first because you won’t know what to look for yet.
What’s the full troubleshooting order?
Phone number → flow → specific block → Lambda console → Lambda code → env vars → DynamoDB → THEN CloudWatch logs and metrics. Follow the call path.
What does Set Logging Behavior do at the start of a flow?
Enables CloudWatch logging for this contact. Every block the call hits gets logged so you can trace it later.
What does Set Recording/Analytics Behavior do?
Controls call recording (agent side, customer side, or both) and enables Contact Lens for transcription and sentiment analysis.
Why set a voice like Joanna near the start of the flow?
Sets the Amazon Polly TTS voice for Play Prompt blocks using text-to-speech. Joanna is default English. Set a second voice for Spanish if the flow supports it.
What should you ask when navigating 100+ flows in someone else’s environment?
Ask about their naming convention first. Likewize used ‘wise connect’ as a prefix. Knowing the pattern saves you from scrolling through 100 flows guessing.
What’s in the index.js file of a Lambda?
The handler - entry point that listens for triggers. Receives the event, calls service functions, returns the response. It’s the front door, not where the real work happens.