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?
- 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)
- 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?