Skip to content

List HITL events

Request

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_typedata fields
fin_consultation_startedchannel, rule_threshold_percent, confidence_percent, sharp_ask, ask_rationale, issue_summary, customer_question
fin_draft_proposeddraft
fin_teammate_input_receivedround_index, teammate_input, reviewer_admin_id, regeneration_outcome
fin_draft_revisedround_index, revised_draft, regeneration_outcome
fin_consultation_finishedoutcome, 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_id identifies 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 an outcome of superseded.
  • conversation_part_id links an event to a conversation part where one exists. It is null in 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_at on fin_draft_proposed is approximate. It reports when the consultation started, which is when the draft was proposed.
  • rule_id, rule_name and rule_threshold_percent are 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 are null for consultations not triggered by a rule.
  • reviewer_admin_id identifies the teammate involved in that event: on fin_teammate_input_received the teammate who gave the feedback, and on fin_consultation_finished the teammate who approved the draft or took over. On a consultation with several rounds these can be different teammates.
  • rounds_count counts every round of teammate feedback the consultation had. Only the ten most recent rounds are retained, so a heavily steered consultation returns fewer fin_teammate_input_received events than rounds_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.
Security
bearerAuth
Path
idstringrequired

The identifier for the conversation as given by Intercom.

Example:123
Headers
Intercom-Versionstring(intercom_version)

Intercom API version.
By default, it's equal to the version set in the app package.

Default:"Preview"
Enum:"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example:Preview
curl -i -X GET \
  https://api.intercom.io/conversations/123/hitl_events \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Intercom-Version: Preview'

Responses

Successful response

Bodyapplication/json
typestring

The type of the object.

Value:"list"
Example:"list"
dataArray of objects(HITL Event)

An array of HITL event objects.

Response
{ "type": "list", "data": [ {}, {}, {}, {}, {} ] }