A checklist for building with Twilio Flex
Building a contact center requires significant planning. This checklist is a starting point for project planning and getting your contact center operational.
Feel free to add, remove, and modify items from the list - we can’t wait to see your Flex contact center!
The content on this page is here to be relatively easy to read - but the most up-to-date version (and, in our opinion, the most useful version) is the Airtable base version (pwd:
lets-build-with-flex). You can download the Airtable base as a CSV to use in your own project management workflow.
- Assess existing/anticipated equipment
- Desktop/Virtual Desktop (Note you may use Virtual Desktop Infrastructure (VDI) however it is not officially supported by Twilio)
- Agent headsets, and capability to connect to a supported endpoint
- Run Twilio Network Test and record results
- Wired vs wireless network? Do you need/handle network changes?
- Do you need some form of Interconnect?
- Review Flex UI requirements
- Determine whether your firewall supports DNS rules (for allowing Twilio traffic)
- Identify important channels
- Determine whether traffic will be inbound and/or outbound on each channel
- Clarify call recording needs (as they relate to Work Force Management/Work Force Optimization)
- Do you have an existing relationship with a SIP Carrier?
- Document pain points and limitations in existing call routing strategy
- Establish a routing style/routing rules (establish skills, activities, queue expressions, etc)
- Learn about timeouts and confirm that they map to expected SLAs
- Discuss potential race conditions for routing (If-Match and Etag headers?)
- Learn about Studio
- Determine whether you need custom flows, or if the existing Messaging and Voice flows adequately serve your needs
- Outline IVR and consider any need for machine intelligence in your IVR (e.g., with DialogFlow)
- Is there a need for professional voice talent for IVR recording?
- Identify your SSO provider
- Plan roles, associated skills, patterns and permissions
- Ensure Active User Hour/Named User plan is appropriate for your use case
- Determine CRM needs for your agents (if any).
- Identify what level of integration between Flex/CRM is possible and desired. Do you want to embed the CRM in Flex as an iframe, or vice-versa? Or perhaps create a custom plugin with a dedicated UI that leverages CRM functionality via API?
- Outline what functionality needs to be added.
- Establish a corresponding Plugin architecture based on Plugin limits
- Are you using Twilio Flex plugins or self-hosted Flex UI?
- Best practices for release management (dev/stage/prod)
- Have plans for testing functionality locally
- Establish separate Flex accounts for stage/prod
- Assess current WFM/WFO solutions, if they exist
- Determine how existing solutions will need to change and/or phase out with Flex implementation
- Develop a rollout plan (start with a key set of agents, then roll out to larger groups?)
- Assess A2P 10DLC concerns (if sending messages in the US)
- Consider global phone number requirements for other geographies as needed
- Determine what functions can rely on Twilio Serverless, and what logic should be offloaded to internal servers
- Node.js/npm installation for building your first Plugin
- "npm install" package dependencies (and if required, install these for CI/CD setup)
- Check accessibility of dev or prod environments (can they be reached in the form of webhooks from the internet, or will Twilio’s traffic be denied?)
- Other tools to check for compatibility: ngrok for webhook URLs in development environment: status callbacks, Twilio Functions/Twilio Studio
- Acquire phone numbers and IDs to handle traffic at scale on each channel
- Enable channels in different geographies with phone numbers and handle geo-permissions
- Create the required Task Queues and Workflows
- Set up worker skills and custom attributes (this may also involve work in the SSO integration, see below)
- Handle mutation with If-Match and Etag headers to avoid race conditions
- Implement IVR using Twilio Studio
- Consider whether to build a conversational IVR/chatbot leveraging AI
- Lay out your intents, “FAQs”, data that needs to be gathered, defaults, fallbacks, etc
- Integrate SSO provider with Flex
- Set up logic for provisioning/deprovisioning users
- Configure roles for individual agents. Make sure agents/supervisors get the appropriate role when they log in with SSO.
- Configure skills for individual agents.
- Establish patterns for worker’s unique friendly names (what do you do if you have Charlie Smith and Chloe Smith?)
- Implement CRM integration (click to dial, screen pop, etc)
- Confirm that Task Attributes from routing step are formatted correctly to be consumed by Insights
- Enable Insights using SSO. (Setting up different roles and attributes)
- Add a WFO role for users to see WFO tab
- Create Agent runbook - things like checking agent network connectivity and procedures for using the Flex UI.
- Review Flex UI requirements again
- Test call recording (is it working as expected?) for inbound and outbound calls
- Monitor message throughput across asynchronous channels
- Handle data inconsistencies
- Change agent statuses when they forget to log out, etc.
Debugging and troubleshooting
- Understand and debug different Flex errors coming from the Flex Debugger UI.
- Have an escalation plan (e.g., collecting troublesome Call SIDs to share with support)
- Select a support plan
- Integrate Plugin CLI with CI/CD and other internal tools
- Establish release cadence and best practices
- Gather customer and agent feedback, decide whether to collect more or less information earlier in the IVR for higher-quality conversations
Agent Experience/End User Guides
- Ensure audio drivers are working properly
- CallerID needs for outbound calling (callerId can fail)
- Create basic troubleshooting guides for agents around enabling audio
- List of IPs that should be added to allowlist to use different products in Flex.
- Implement logic to catch any calls that fail to be added to voice/message queues
- Review existing rate limits and needed capacity for Twilio products
- Particularly important if TaskRouter worker limit is increased
- Voice: Calls-per-second (CPS) and call queue size
- Messaging: messages per second (MPS) and message queue size
- TaskRouter: Task Queue Size, timeouts, limits on Queues and Workflows (work with your sales team to understand these limits better)
- Sync: connection limits
- Flex Flows (one per messaging address)
- Investigate rate limits for any 3rd party integrations, and work with 3rd party sales/professional services to increase limits or improve efficiency
- E.g., Caching tokens to prevent per-hour limits, increasing concurrency on a 3rd party API endpoint
- Migrate Twilio Function prototypes to internal infrastructure/servers as necessary
- Establish practices for DevOps at scale
- Have a valid payment method on file and confirm/establish payment plan
- Validate that payment method is operational
Agent Experience/End User Guides
- Ensure audio drivers are still working properly across different agent technology
- Share troubleshooting guides with agents around enabling audio
- Create End User guides for critical paths in using Flex (e.g., accepting tasks, making an outbound call)
- Add VPN IP addresses to allowlist
- Add IPs for other products to Twilio allowlists
- Check Twilio API Concurrency at scale - does this need to be increased?
Need some help?
We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.