Call Flow Events & Trigger Reference
This article documents the Taalk runtime TalkSessionEvent signals and how they map to Trigger By options in the rules UI. Use this as your single source of truth when wiring automations, analytics, QA, or downstream integrations. Audience: AI Solution Engineers / Advanced Builder
Quick Summary
- **Events** are discrete signals emitted during a session (voice, SMS, chat, email, webhook-driven).
- **Triggers** listen to chosen events and run actions (e.g., tag, route, notify, call a webhook).
- The **UI’s Trigger By** list is a curated subset for common workflows; the enum contains the full set.
Typical Session Lifecycle (Voice/SMS)
A common voice session may look like:
START → LISTEN → MESSAGE → (optional TRANSFER → TRANSFER_RING → TRANSFER_PICKED → TRANSFER_END) → FINISH → AFTER_FINISH
For SMS/Chat:
START → MESSAGE (repeats per turn) → FINISH → AFTER_FINISH
Survey subflows and email events can interleave; errors/timeouts/cancellations can short-circuit normal order.
UI “Trigger By” → Event Mapping
The current UI list (TRIGGER\_BY\_OPTIONS) exposes these items:
UI Label (shown) |
Underlying Event |
Notes |
Engagement Accepted |
START |
Session picked by agent/bot; effective session start |
Engagement Refused |
REFUSED |
Party refused to engage or declined. |
Engagement Finished |
FINISH |
Primary session end |
Post-Engagement Processing |
AFTER_FINISH |
Post-finish cleanup window. Good for trailing automations |
In Conversation |
MESSAGE |
Fires on AI/user message turns |
Transfer Initiated |
TRANSFER |
Generic transfer start event |
Transfer Connecting |
TRANSFER_RING |
~5–7 seconds after dial, while the destination is ringing. |
Transfer Failed |
TRANSFER_FAILED |
Downstream target didn’t accept or errored. |
Survey End |
SURVEY_END |
End of a survey flow. |
Reply Email |
REPLY_EMAIL |
Reply email was generated/sent. |
Embedded URL Clicked |
LINK_CLICKED |
User clicked a trackable link |
Important: The UI list does not expose all events from the enum (see full catalog below). If you need one that isn’t visible, ask Platform to expose it or bind via webhook listeners.
Best Practices & Gotchas
-
Prefer specific events over
OTHER
for stable automations. -
Commit at
Engagement Finished
, clean up atPost-Engagement Processing
to avoid blocking the user experience. -
Differentiate transfer stages for accurate SLAs:
Transfer Initiated
vs.Transfer Connecting
vs.Engagement Accepted
(post-transfer) vs.Transfer Failed
. -
Do not assume ordering under error conditions; race conditions can emit out of the usual sequence.
-
UI coverage: If an event you need isn’t in the Trigger By list, raise a request to expose it or capture via webhook.
-
Email safety nets: always pair
Reply Email
flows withEMAIL_ERROR
handling.