- Tracking the end-user journey through ASAPP
- Supporting workforce management needs
- Integrating with customer-maintained CRM systems
- Activity: Agent status change events, for tracking schedule adherence
- Journey: Events denoting milestones in a conversation, for tracking the customer journey
- Queue State: Updates on queues for tracking size and estimated wait times
Architecture Discussion
Upon a customer’s request, ASAPP can provide several types of real-time event data.Note that ASAPP can separately enhance standard real-time events to accommodate specific customer requirements. Such enhancements would usually be specified and implemented as part of ASAPP’s regular product development process.

Customer Requirements
- The customer must implement a POST API endpoint to handle the event messages.
- The customer and ASAPP must develop the mTLS authentication integration to secure the API endpoint
- All ASAPP real-time “raw” events will post to the same endpoint; the customer is expected to filter the received events to their needs based on name and event type.
- Each ASAPP real-time “processed” reporting feed can be configured to post to one arbitrary endpoint, at the customer’s specified preference (i.e., each feed can post to a separate URI, or each can post to the same URI, or any combination required by the customer’s use case.)
Endpoint Sizing
The endpoint configured by the customer should provisioned with sufficient scale to receive events at the rate generated by the customer’s ASAPP implementation. As a rule of thumb, customers can expect:- A voice call will generate on the order of 100 events per issue
- A text chat will generate on the order of 10 events per issue
Endpoint Configuration
ASAPP can configure its service with the following parameters:- url: The destination URL of the customer API endpoint that is set up to handle POST http requests.
- timeout_ms: The number of milliseconds to wait for a HTTP 200 “OK” response before timing out.
- retries: The number of times to retry to send a message after a failed delivery.
- (optional)event_list: List of
event_typesto send.
If
event_type is empty it will default to send all events for this feed.
List the necessary event_type to reduce unnecessary traffic.Real-time Overview
ASAPP’s standard real-time events include data representing human interactions and general issue lifecycle information from the ASAPP feeds namedcom.asapp.event.activity, com.asapp.event.journey, and com.asapp.event.queue.
In the future, when additional event sources are added, the name of the stream will reflect the event source.
Payload Schema
Each of ASAPP’s feeds will deliver a single event’s data in a payload comprised of a two-level JSON object. The delivered payload includes:- Routing metadata at the top level common to all events. A small set of fields that should always be present for all events, used for routing, filtering, and deduplication.
- Metadata common to all events. These fields should usually be present for all events to provide meta-information on the event. Some fields may be omitted if they do not apply to the specific feed.
- Data specific to the event feed. Some fields may be omitted but the same total set can be expected for each event of the same origin
- Details specific to the event type.
Activity Feed
The agent activity feed provides a series of events for agent login and status changes. ASAPP processes the event data minimally before pushing it into theactivity feed to:
- Convert internal flags to meaningful human-readable strings
- Filter the feed to include only data fields of potential interest to the customer
ASAPP’s
activity feed does not implement complex event processing (e.g., aggregation based on time windows, groups of events, de-duplication, or system state tracking). Any required aggregation or deduplication should be executed by the customer after receiving activity events.Sample Event JSON
Field Explanations
Adding the
event_list filter in the configuration allows the receiver of the real-time feed to indicate for which event types they want to receive an Activity message.This message will still contain all the fields that have been populated, as the events are being accumulated in the Activity message for that same rep_id.For example: If the event_list contains only agent_activity_status_updated, the Activity messages will still contain all the fields (status_description, routing_status, previous_routing_status, assigned_customer_ct, utilization_5_min_active, etc), but will only be sent whenever the agent status was updated.Event Types
agent_activity_identity_updatedagent_activity_status_updatedagent_activity_capacity_updatedagent_activity_assignment_load_updatedagent_activity_routing_status_updatedagent_activity_previous_routing_statusagent_activity_queue_membershipagent_activity_utilization_5_min
Journey Feed
The customer journey feed tracks important events in the customer’s interaction with ASAPP. ASAPP processes the event data before pushing it into thejourney feed to:
- Collect conversation and session events into a single feed of the customer journey
- Add metadata properties to the events to assist with contextualizing the events
This feature is available only for ASAPP Messaging.
ASAPP’s
journey feed does not implement aggregation. Any aggregation or deduplication required by the customer’s use case will need to be executed by the customer after receiving journey events.Sample Event JSON
Field Explanations
Event Types
ISSUE_CREATEDISSUE_ENDEDINTENT_CHANGEFIRST_INTENT_UPDATEDINTENT_PATH_UPDATEDNODE_VISITEDLINK_RESOLVEDFLOW_SUCCESSFLOW_SUCCESS_NEGATEDEND_SRS_RESPONSESURVEY_SUBMITTEDCONVERSATION_ENDEDCUSTOMER_ENDEDISSUE_SESSION_UPDATEDDETECTEDOPPORTUNITY_ENDEDOPPORTUNITY_ESCALATEDQUEUEDQUEUE_ABANDONEDTIMED_OUTTEXT_MESSAGEFIRST_OPPORTUNITYQUEUED_DURATIONCUSTOMER_RESPONSE_BY_OPPORTUNITYISSUE_OPPORTUNITY_QUEUE_INFO_UPDATEDASSIGNEDASSIGNMENT_ENDEDAGENT_RESPONSE_BY_OPPORTUNITYSUPERVISOR_UTTERANCE_BY_OPPORTUNITYAGENT_FIRST_RESPONDEDISSUE_ASSIGNMENT_AGENT_INFO_UPDATEDLAST_FLOW_ACTION_CALLEDJOURNEY_CUSTOMER_PARAMETERSFILE_UPLOAD_DETECTEDDISPOSITIONLAST_ASSIGNMENT_SUMMARY
Adding the
event_list filter in the configuration allows the receiver of the real-time feed to indicate for which event types they want to receive a Journey message.This message will still contain all the fields that have been populated, as the events are being accumulated in the Journey message for that same issue_id.Example: if the event_list contains only SURVEY_SUBMITTED the Journey messages will still contain all the fields (issue_start_ts, assigned_ts, survey_responses, etc), but will only be sent whenever the survey submitted event happens.Queue State Feed
The queue state feed provides a set of events describing the state of a queue over the course of time. ASAPP processes the event data before pushing it into thequeue feed to:
- Collect queue volume, queue time and queue hours events into a single feed of the queue state
- Add metadata properties to the events to assist with contextualizing the events
ASAPP’s
queue feed does not implement aggregation. Any aggregation or deduplication required by the customer’s use case will need to be executed by the customer after receiving queue events.Sample Event JSON
Field Explanations
For a complete detail of all the fields please refer to the full openapi schema.Event Types
queue_info_updatedqueue_size_updatedqueue_estimated_wait_time_updatedbusiness_hours_settings_updatedholiday_settings_updatedqueue_capping_settings_updatedqueue_mitigation_updatedqueue_availability_updated