Skip to main content


Internal Hackathon for COVID19 Response – Team VoxCare

Meal Delivery

Our Customer Engagement Solutions group at Perficient is focused on helping our customers improve communication and interactions with their customers. Through our partnerships with industry-leading communications frameworks, we enhance and implement various ways companies interact across multiple channels.

The COVID-19 pandemic has disrupted every part of our lives and the contact center space is no different. There are huge spikes in traffic to health care, financial and government customer service lines. Contact center agents are trying to figure out how to work from home. Legacy contact center systems requiring agents to be at an office desk to take voice calls have been rendered unusable for the time being. Long wait times have increased the need for self-service options, bot interactions for common questions and use of alternate channels.

In light of these issues, our team at Perficient spent the week of March 23rd on an internal hackathon. The goal was to generate various proof-of-concept projects to address some of these needs. We’ll highlight some of this work, both to provide ideas to the community and to show ways we can quickly scale up solutions to help your company in this time of crisis.

These blog posts will take the form of an interview with one of our internal hackathon teams.

Team Concept – What is the use case or problem you are attempting to address?

Team CareVox (Andy Gilbert, Chitra Shah, Alberto Lopez) focused on a low friction solution for community or local government organizations to reach out to individuals they service. We targeted the Voice channel, but also considered SMS and feel it would be a good addition. A good example use case: a local organization that is delivering food to high risk individuals or those without transportation needs to deliver automated voice notifications. These notifications might provide updates or information on pending activities or schedules.

Driving goals for this POC

  • low friction
  • low cost
  • personal touch
  • simplicity

We really wanted to make it easy for non-technical volunteers to create, deliver and manage notifications. So we put some time into the IVR experience used by Organizers to create, review and send a notification.

Who is the target company or organization for this solution?

Local non-profit, government or NGO type organizations that service at-need populations. Services could include food, elderly check-in, home health care, transportation, social services.

Describe the services or components used in your solution at a high level?

Twilio Programmable Voice and Twilio Studio Flows

These services were used to develop the inbound interface for creating and sending a notification. Organizers can dial into the IVR, confirm access with a PIN, and record a notification message to be sent to a preset list of recipients. They have the option of reviewing the recording, re-recording, immediately sending, or choosing to start the notification through a separate SMS trigger.

Start Notifications via SMS



The Record Voicemail widget in Twilio Studio captures the notification audio. The recordings are stored in the Twilio Programmable Voice recordings library. When a notification is created we associate the appropriate recording resource (URL) with the Organizer and the intended recipient list. We also explored using a lower level TwiML solution for recording capture. In the end, the Record Voicemail widget supported our needs. Its features simplified some of the work we would need to do, specifically callbacks and TwiML redirection.

Recording Logs in Twilio



A notification is started in a separate step. This allows support for immediate SMS triggers. Future versions could include scheduled / calendar based notification runs. This would require some additional Voice UI work as well as a background scheduler to implement. Outbound calls are triggered through calls to the REST Api endpoint of an appropriate Outbound Studio Flow.

Message Delivery

For delivery we also used Twilio Studio and version 2 of the Outgoing Call widget. Once again, we could have implemented much of this functionality with functions and TwiML. However the widget support for the basic functionality we needed was great. And it saved us from more callback and TwiML plumbing! The base Outbound flow also captures call state, including human, answering machine, busy, failed and logs to our data store. A basic opt-out option was included on the outbound script. An additional consideration here might be simple outbound ivr flow templates that an Organizer could choose from to automate simple responses / acknowledgements from recipients.

We used some simple tables in Amazon DynamoDB to manage lists, organizers, notifications and call logs.

What challenges did you face in approaching this problem?

The Twilio platform is awesome, and just the productivity gains from the Studio widgets was amazing. However we did have to use AWS for a data store, and we miss having a Twilio native scheduling / background task solution. We felt while Sync might be suitable for simple state management, it is not really intended for a service implementation with requirements for things like call logging, reporting, transactional like activities. And the lack of a scheduler, simple background support, is really a bummer!

There were challenges around the use of Twilio Functions to do batch style updates, particularly to trigger the Outbound flow through the REST Api. A solution for background / scheduling would likely address this. In the meantime we are considering use of Amazon SQS and Lambda as an approach.

Finally, answering machine detection is known to be a bit of an art. We did not spend any time tuning this. The base setup works pretty well, but isn’t perfect. In particular we found that messages to voice mail boxes were often mistaken as human and the messages left were clipped.

Tell me about some enhancements or additional features you might add to your prototype

  • Support for self-registration / setup
  • Scheduling notifications (beyond immediate or SMS trigger)
  • Support for SMS notifications
  • Support for multiple contact lists, allowing Organizer to choose targets for a notification
  • Support for a notification library, allowing Organizer to choose from previous messages
  • Support for outbound ivr flow templates that might include simple response captures
  • Ability for recipient to easily “reply” to a message, have this go to a drop box / voice box for the Organizer

Our Team

Customer engagement goes beyond customer service. Our team takes pride in our personal approach to the customer journey. We typically help enterprise clients transform and modernize their contact center with Twilio Flex, a programmable cloud contact center platform.

We have over 10 years of experience in delivering customer care solutions, including building, supporting, and deploying contact center solutions, and we consider it our personal responsibility to apply our expertise to helping our global community through the pandemic in any way we can.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Curtis Swartzentruber, Director, Customer Engagement Solutions

Director of Customer Engagement Solutions, currently focusing on the Twilio Flex contact center platform and other Twilio services. My background spans 25 years including Microsoft and front-end application development, unified communications, enterprise architecture and services, Azure, AWS, database design and a little bit of everything else.

More from this Author

Follow Us