park-interaction
Feature summary
This feature adds a pause/park button to messaging conversations so that while waiting for a response, an agent can be freed up for new work, while also maintaining conversation history. Next time the customer writes a message, if the conversation was parked, it will route through the workflow again for worker assignment, and the history of the conversation will be present when a worker accepts the task.
Furthermore, you have the option to enable the 'Parked Interactions' list, which empowers agents to access and manage parked conversations, with a specific focus on Web Chat and WhatsApp. This list allows agents to efficiently unpark conversations directly from their interface. Details here.
Flex User Experience

Additional Parked Interactions list

Setup and dependencies
To enable the parking feature, under your flex-config attributes set the park_interaction enabled flag to true. To enable the recent interaction view, set the show_list to true.
"park_interaction": {
"enabled": true,
"show_list": true
}
You may need a different use case then what this plugin does today. For example, currently when the customer writes a message, the task is routed to same workflow as the originally parked task. If you instead need to route back to a specific agent or queue, you can adjust your TaskRouter workflow to use the included originalRouting.queueName,originalRouting.queueSid, and/or originalRouting.workerSid task attributes, or you could modify the unpark-interaction serverless function to route directly using the queue and worker SIDs (details for this example here). Alternatively, if you wish to route the interaction through a Studio flow when the customer replies, you could change the webhook URL in the park-interaction serverless function to a Studio flow webhook URL.
How does it work?
This feature is based in the instructions given on our doc on how to Park an Interaction. In the legacy Flex this functionality was known as "long-lived channels".
Parked Interactions List details
- This feature leverages Sync MapItems to store the state of recently parked interactions
- Non-SMS interactions are stored with a time-to-live (TTL) of 24 hours due to restrictions imposed by third-party platforms
- Attempting to unpark a closed or failed conversation will result in an error
- While unparking an interaction, the associated Sync MapItem is deleted, for both scenarios (customer or worker-initiated). The
unpark-interactionserverless function checks if the conversation hasmapSidandmapItemKeyattributes, which are only added when it's being parked and theshow_listoption is enabled - If the unparking is worker-initiated from the list,
queue_idandworder_sidattributes are added to the request, so the interaction is routed directly to the worker. Otherwise, if customer-initiated, these are not added