Learn how to implement ASAPP’s real-time event API to receive activity, journey, and queue state updates.
event_types
to send.event_type
is empty it will default to send all events for this feed.
List the necessary event_type
to reduce unnecessary traffic.com.asapp.event.activity
, com.asapp.event.journey
, and com.asapp.event.queue
.
In the future, when additional event sources are added, the event source will be reflected in the name of the stream.
activity
feed to:
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.Field | Description |
---|---|
api_version | Major and minor version of the API, compatible with the base major version |
name | Source of this event stream - use for filtering / routing |
event_type | Event type within the stream - use for filtering / routing |
event_id | Unique ID of an event, used to identify identical duplicate events |
meta_data.create_time | UTC creation time of this message |
meta_data.event_time | UTC time the event happened within the system - usually some ms before create time |
meta_data.session_id | Customer-side identifier to link events together based on customer session. May be null for system-generated events. |
meta_data.client_id | May include client type, device, and version, if present in the event headers |
data.rep_id | Internal ASAPP identifier of an agent |
details | These fields vary based on the individual event type - only fields relevant to the event type will be present |
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.agent_activity_identity_updated
agent_activity_status_updated
agent_activity_capacity_updated
agent_activity_assignment_load_updated
agent_activity_routing_status_updated
agent_activity_previous_routing_status
agent_activity_queue_membership
agent_activity_utilization_5_min
journey
feed to:
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.Field | Description |
---|---|
api_version | Major and minor version of the API, compatible with the base major version |
name | Source of this event stream - use for filtering / routing |
event_type | Event type within the stream - use for filtering / routing |
event_id | Unique ID of an event, used to identify identical duplicate events |
meta_data.create_time | UTC creation time of this message |
meta_data.event_time | UTC time the event happened within the system - usually some ms before create time |
meta_data.session_id | Customer-side identifier to link events together based on customer session |
meta_data.issue_id | ASAPP internal tracking of a conversation - used to tie events together in the ASAPP system |
meta_data.company_subdivision | Filtering metadata |
meta_data.company_segments | Filtering metadata |
meta_data.client_id | May include client type, device, and version |
data.customer_id | Internal ASAPP identifier of the customer |
data.rep_id | Internal ASAPP identifier of an agent. Will be null if no rep is assigned |
data.group_id | Internal ASAPP identifier of a company group or queue. Will be null if not routed to a group of agents |
details | The details of the event. All details are omitted when empty |
ISSUE_CREATED
ISSUE_ENDED
INTENT_CHANGE
FIRST_INTENT_UPDATED
INTENT_PATH_UPDATED
NODE_VISITED
LINK_RESOLVED
FLOW_SUCCESS
FLOW_SUCCESS_NEGATED
END_SRS_RESPONSE
SURVEY_SUBMITTED
CONVERSATION_ENDED
CUSTOMER_ENDED
ISSUE_SESSION_UPDATED
DETECTED
OPPORTUNITY_ENDED
OPPORTUNITY_ESCALATED
QUEUED
QUEUE_ABANDONED
TIMED_OUT
TEXT_MESSAGE
FIRST_OPPORTUNITY
QUEUED_DURATION
CUSTOMER_RESPONSE_BY_OPPORTUNITY
ISSUE_OPPORTUNITY_QUEUE_INFO_UPDATED
ASSIGNED
ASSIGNMENT_ENDED
AGENT_RESPONSE_BY_OPPORTUNITY
SUPERVISOR_UTTERANCE_BY_OPPORTUNITY
AGENT_FIRST_RESPONDED
ISSUE_ASSIGNMENT_AGENT_INFO_UPDATED
LAST_FLOW_ACTION_CALLED
JOURNEY_CUSTOMER_PARAMETERS
FILE_UPLOAD_DETECTED
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
feed to:
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.Field | Description |
---|---|
api_version | Major and minor version of the API, compatible with the base major version |
name | Source of this event stream - use for filtering / routing |
meta_data.create_time | UTC creation time of this message |
meta_data.event_time | UTC time the event happened within the system - usually some ms before create time |
meta_data.session_id | Customer-side identifier to link events together based on customer session. May be null for system-generated events. |
meta_data.issue_id | ASAPP internal tracking of a conversation - used to tie events together in the ASAPP system |
meta_data.company_subdivision | Filtering metadata |
meta_data.company_id | The short name used to uniquely identify the company associated with this event. This will be constant for any feed integration. |
meta_data.company_segments | Filtering metadata |
meta_data.client_id | May include client type, device, and version |
meta_data.client_type | The lower-cardinality, more general classification of the client used for the customer interaction |
data.queue_id | Internal ASAPP ID for this queue |
data.queue_name | The name of the queue |
data.business_hours_time_zone_offset_minutes | The number of minutes offset from UTC for calculating or displaying business hours |
data.business_hours_time_zone_name | A time zone name used for display or lookup |
data.business_hours_start_minutes | A list of offsets (in minutes from Sunday at 0:00) that correspond to the time the queue transitions from closed to open |
data.business_hours_end_minutes | Same as business_hours_start_minutes but for the transition from open to closed |
data.holiday_closed_dates | A list of dates currently configured as holidays |
data.queue_capping_enabled | Indicates if any queue capping is applied when enqueueing issues |
data.queue_capping_estimated_wait_time_seconds | If the estimated wait time exceeds this threshold (in seconds), the queue will be capped. Zero is no threshold. |
data.queue_capping_size | If the queue size is greater than or equal to this threshold, the queue will be capped. Zero is no threshold. This applies independent of estimated wait time. |
data.queue_capping_fallback_size | If there is no estimated wait time and the queue size is greater than or equal to this threshold, the queue will be capped. Zero is no threshold. |
event_id | Unique ID of an event, used to identify identical duplicate events |
event_type | Event type within the stream - use for filtering / routing |
details.last_queue_size | The latest size of the queue |
details.last_queue_size_ts | Time when the latest queue size update happened |
details.last_queue_size_update_type | The reason for the latest queue size change |
details.estimated_wait_time_updated_ts | Time when the estimate was last updated |
details.estimated_wait_time_seconds | The number of seconds a user at the end of the queue can expect to wait |
details.estimated_wait_time_is_available | Indicates if there is enough data to provide an estimate |
queue_info_updated
queue_size_updated
queue_estimated_wait_time_updated
business_hours_settings_updated
holiday_settings_updated
queue_capping_settings_updated
queue_mitigation_updated
queue_availability_updated