- List HITL events
List the human-in-the-loop (HITL) events for a conversation. When Fin is unsure of an answer it can consult a teammate before replying, proposing a draft that the teammate approves, steers with free-text feedback, or takes over. Each consultation is returned as a series of events, oldest first, across every consultation on the conversation.
Requires the read_conversations OAuth scope, and the caller must be able to access the conversation.
Events are only recorded once a consultation has ended, so a consultation still awaiting a teammate does not appear.
Which fields appear in data depends on event_type:
event_type | data fields |
|---|---|
fin_consultation_started | channel, rule_threshold_percent, confidence_percent, sharp_ask, ask_rationale, issue_summary, customer_question |
fin_draft_proposed | draft |
fin_teammate_input_received | round_index, teammate_input, reviewer_admin_id, regeneration_outcome |
fin_draft_revised | round_index, revised_draft, regeneration_outcome |
fin_consultation_finished | outcome, approved_draft_type, final_draft, sent_text, reviewer_admin_id, duration_seconds, rounds_count, payload_truncated |
A consultation always produces a fin_consultation_started and a fin_consultation_finished event. fin_draft_proposed appears when Fin proposed a draft. fin_teammate_input_received appears once per round of teammate feedback, and fin_draft_revised once per round where Fin produced a revised draft in response.
Notes on interpreting the response:
hitl_cycle_ididentifies the consultation, so it is the same on every event of one consultation. It is not unique per event. A conversation can hold several consultations — a consultation that replaces an outstanding one finishes with anoutcomeofsuperseded.conversation_part_idlinks an event to a conversation part where one exists. It isnullin ordinary cases: teammate feedback given through the inbox creates no conversation part, a revised draft has no part of its own, and a consultation that escalated or was superseded sent no reply.created_atonfin_draft_proposedis approximate. It reports when the consultation started, which is when the draft was proposed.rule_id,rule_nameandrule_threshold_percentare recorded when the consultation begins and are not updated afterwards, so a rule that has since been renamed or retuned will not match its current settings. They arenullfor consultations not triggered by a rule.reviewer_admin_ididentifies the teammate involved in that event: onfin_teammate_input_receivedthe teammate who gave the feedback, and onfin_consultation_finishedthe teammate who approved the draft or took over. On a consultation with several rounds these can be different teammates.rounds_countcounts every round of teammate feedback the consultation had. Only the ten most recent rounds are retained, so a heavily steered consultation returns fewerfin_teammate_input_receivedevents thanrounds_count.- Redacting a conversation removes this data. Depending on how it was redacted, the conversation either returns no events or returns events whose text fields are all
null.
Intercom API version.
By default, it's equal to the version set in the app package.
- The production API serverhttps://api.intercom.io/conversations/{id}/hitl_events
- The european API serverhttps://api.eu.intercom.io/conversations/{id}/hitl_events
- The australian API serverhttps://api.au.intercom.io/conversations/{id}/hitl_events
curl -i -X GET \
https://api.intercom.io/conversations/123/hitl_events \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Intercom-Version: Preview'Successful response
An array of HITL event objects.
{ "type": "list", "data": [ { … }, { … }, { … }, { … }, { … } ] }