Skip to content

Commit e9cfbb8

Browse files
cathalgingclaude
andauthored
Remove an unused schema and complete the Fin Agent event schemas (#771)
* Remove an unused schema and complete the Fin Agent event schemas - Remove the unused `metadata` schema, an alias of `conversation_part_metadata` that nothing references. - Add the `thinking` status and the `/fin/escalate` escalation reason to `fin_agent_status_updated_event`. - Add the `complete` status to `fin_agent_replied_event`. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Say which escalation reasons each Fin Agent endpoint sends - Say that /fin/ask can report the escalation rule reasons, "Routed to team" and "Conversation finished without resolution". - Say that "Escalation requested by user" is sent whenever Fin decides to hand over, not only when the user asks for a human. - Say that every escalation during /fin/procedures/{procedure_id}/run reports "Escalation requested by user". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Describe how /fin/ask can escalate - Say /fin/ask can report any of the Fin-decided escalation reasons, because escalation rules still apply and the conversation can still be routed to a team or finish without resolution. - Replace "never escalates" in the Ask descriptions: Fin does not decide to hand over itself, but escalation rules can still match. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Tighten the escalation reason description for Ask and procedures - Say "Escalation requested by user" also follows an escalation rule match, as a second escalated event after the rule's reason. - Say that while a procedure is running, every escalation Fin decides on reports it. - Say that on an Ask it normally only follows an escalation rule match. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent e01e083 commit e9cfbb8

2 files changed

Lines changed: 54 additions & 18 deletions

File tree

‎descriptions/0/api.intercom.io.yaml‎

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34004,7 +34004,7 @@ paths:
3400434004
endpoint: /fin/reply
3400534005
method: POST
3400634006
- name: ask
34007-
description: Ask Fin a single question and get one informational answer. Fin never escalates, disambiguates, or asks follow-up questions. Use for one-shot informational lookups.
34007+
description: Ask Fin a single question and get one informational answer. Fin does not decide to hand over to a human, disambiguate, or ask follow-up questions, although escalation rules can still apply. Use for one-shot informational lookups.
3400834008
inputSchema:
3400934009
type: object
3401034010
properties:
@@ -34253,10 +34253,11 @@ paths:
3425334253
Ask Fin a single, self-contained question and receive one informational answer.
3425434254

3425534255
Unlike a conversation, `/fin/ask` is non-conversational: Fin will not ask follow-up
34256-
questions, will not run procedures, and will not escalate to a human on its own. You can
34257-
still escalate one yourself with `POST /fin/escalate`; the ask conversation is already
34258-
closed after its one-shot answer, and escalation leaves it closed while routing the
34259-
handoff separately.
34256+
questions, will not run procedures, and will not decide to hand over to a human itself.
34257+
Escalation rules can still match, and the conversation can still be routed to a team or
34258+
finish without resolution. You can also escalate one yourself with `POST /fin/escalate`;
34259+
the ask conversation is already closed after its one-shot answer, and escalation leaves
34260+
it closed while routing the handoff separately.
3426034261

3426134262
Fin's answer is delivered asynchronously via the `fin_replied` event. The conversation
3426234263
ends with a `complete` status — there is no `awaiting_user_reply` cycle.
@@ -47849,8 +47850,6 @@ components:
4784947850
type: string
4785047851
description: The HTML content of any quoted or forwarded email history from the initial inbound message
4785147852
example: '<div><span>On Jan 28, wrote:</span><blockquote>Previous thread</blockquote></div>'
47852-
metadata:
47853-
"$ref": "#/components/schemas/conversation_part_metadata"
4785447853
conversation_attribute_updated_by_workflow:
4785547854
title: Part type - conversation_attribute_updated_by_workflow
4785647855
type: object
@@ -48746,12 +48745,14 @@ components:
4874648745
status:
4874748746
type: string
4874848747
enum:
48748+
- thinking
4874948749
- awaiting_user_reply
4875048750
- escalated
4875148751
- resolved
4875248752
- complete
4875348753
description: |
4875448754
Fin's current status.
48755+
- thinking: Fin has started running a procedure. Not sent on every turn
4875548756
- awaiting_user_reply: Fin has finished replying and is waiting for the user to respond
4875648757
- escalated: The conversation has been escalated to a human
4875748758
- resolved: The user's query has been resolved
@@ -48762,13 +48763,28 @@ components:
4876248763
description: |
4876348764
Optional. A human-readable explanation of why the conversation was escalated.
4876448765
Only present when status is 'escalated'.
48765-
Possible values include:
48766+
48767+
When you escalate deterministically with `/fin/escalate`, the reason is always
48768+
"Escalation requested via API".
48769+
48770+
The following reasons apply to Fin-decided escalations when Fin owns the
48771+
conversation (`/fin/start`, `/fin/procedures/{procedure_id}/run`, and
48772+
`/fin/reply` on a conversation that was started that way). `/fin/ask` can
48773+
report any of them, because escalation rules still apply and the conversation
48774+
can still be routed to a team or finish without resolution. On an Ask,
48775+
"Escalation requested by user" normally only follows an escalation rule match.
4876648776
- "Escalation requested by user"
4876748777
- "Escalation rule: {rule_name}"
4876848778
- "Escalation rule matched"
4876948779
- "Routed to team"
4877048780
- "Conversation finished without resolution"
48771-
example: Escalation requested by user
48781+
48782+
"Escalation requested by user" is sent whenever Fin decides to hand over, not
48783+
only when the user asks for a human, for example on a procedure handoff or a
48784+
custom answer handover. It also follows an escalation rule match, as a second
48785+
`escalated` event after the rule's reason. While a procedure is running, every
48786+
escalation Fin decides on reports it.
48787+
example: Escalation requested via API
4877248788
created_at_ms:
4877348789
type: string
4877448790
format: date-time
@@ -48874,10 +48890,12 @@ components:
4887448890
enum:
4887548891
- replying
4887648892
- awaiting_user_reply
48893+
- complete
4887748894
description: |
4887848895
Fin's current status.
4887948896
- replying: Intermediate reply part; more parts may follow
4888048897
- awaiting_user_reply: Legacy status; instead use the fin_status_updated event with 'awaiting_user_reply', which fires once Fin's reply is done
48898+
- complete: Fin's reply is final and no user reply is expected. Sent for one-shot Ask replies only
4888148899
example: replying
4888248900
created_at_ms:
4888348901
type: string

‎descriptions/2.17/api.intercom.io.yaml‎

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5895,7 +5895,7 @@ paths:
58955895
endpoint: /fin/reply
58965896
method: POST
58975897
- name: ask
5898-
description: Ask Fin a single question and get one informational answer. Fin never escalates, disambiguates, or asks follow-up questions. Use for one-shot informational lookups.
5898+
description: Ask Fin a single question and get one informational answer. Fin does not decide to hand over to a human, disambiguate, or ask follow-up questions, although escalation rules can still apply. Use for one-shot informational lookups.
58995899
inputSchema:
59005900
type: object
59015901
properties:
@@ -6144,10 +6144,11 @@ paths:
61446144
Ask Fin a single, self-contained question and receive one informational answer.
61456145

61466146
Unlike a conversation, `/fin/ask` is non-conversational: Fin will not ask follow-up
6147-
questions, will not run procedures, and will not escalate to a human on its own. You can
6148-
still escalate one yourself with `POST /fin/escalate`; the ask conversation is already
6149-
closed after its one-shot answer, and escalation leaves it closed while routing the
6150-
handoff separately.
6147+
questions, will not run procedures, and will not decide to hand over to a human itself.
6148+
Escalation rules can still match, and the conversation can still be routed to a team or
6149+
finish without resolution. You can also escalate one yourself with `POST /fin/escalate`;
6150+
the ask conversation is already closed after its one-shot answer, and escalation leaves
6151+
it closed while routing the handoff separately.
61516152

61526153
Fin's answer is delivered asynchronously via the `fin_replied` event. The conversation
61536154
ends with a `complete` status — there is no `awaiting_user_reply` cycle.
@@ -42228,8 +42229,6 @@ components:
4222842229
type: array
4222942230
items:
4223042231
$ref: "#/components/schemas/email_setting"
42231-
metadata:
42232-
"$ref": "#/components/schemas/conversation_part_metadata"
4223342232
conversation_attribute_updated_by_workflow:
4223442233
title: Part type - conversation_attribute_updated_by_workflow
4223542234
type: object
@@ -42802,12 +42801,14 @@ components:
4280242801
status:
4280342802
type: string
4280442803
enum:
42804+
- thinking
4280542805
- awaiting_user_reply
4280642806
- escalated
4280742807
- resolved
4280842808
- complete
4280942809
description: |
4281042810
Fin's current status.
42811+
- thinking: Fin has started running a procedure. Not sent on every turn
4281142812
- awaiting_user_reply: Fin has finished replying and is waiting for the user to respond
4281242813
- escalated: The conversation has been escalated to a human
4281342814
- resolved: The user's query has been resolved
@@ -42818,13 +42819,28 @@ components:
4281842819
description: |
4281942820
Optional. A human-readable explanation of why the conversation was escalated.
4282042821
Only present when status is 'escalated'.
42821-
Possible values include:
42822+
42823+
When you escalate deterministically with `/fin/escalate`, the reason is always
42824+
"Escalation requested via API".
42825+
42826+
The following reasons apply to Fin-decided escalations when Fin owns the
42827+
conversation (`/fin/start`, `/fin/procedures/{procedure_id}/run`, and
42828+
`/fin/reply` on a conversation that was started that way). `/fin/ask` can
42829+
report any of them, because escalation rules still apply and the conversation
42830+
can still be routed to a team or finish without resolution. On an Ask,
42831+
"Escalation requested by user" normally only follows an escalation rule match.
4282242832
- "Escalation requested by user"
4282342833
- "Escalation rule: {rule_name}"
4282442834
- "Escalation rule matched"
4282542835
- "Routed to team"
4282642836
- "Conversation finished without resolution"
42827-
example: Escalation requested by user
42837+
42838+
"Escalation requested by user" is sent whenever Fin decides to hand over, not
42839+
only when the user asks for a human, for example on a procedure handoff or a
42840+
custom answer handover. It also follows an escalation rule match, as a second
42841+
`escalated` event after the rule's reason. While a procedure is running, every
42842+
escalation Fin decides on reports it.
42843+
example: Escalation requested via API
4282842844
created_at_ms:
4282942845
type: string
4283042846
format: date-time
@@ -42929,10 +42945,12 @@ components:
4292942945
enum:
4293042946
- replying
4293142947
- awaiting_user_reply
42948+
- complete
4293242949
description: |
4293342950
Fin's current status.
4293442951
- replying: Intermediate reply part; more parts may follow
4293542952
- awaiting_user_reply: Legacy status; instead use the fin_status_updated event with 'awaiting_user_reply', which fires once Fin's reply is done
42953+
- complete: Fin's reply is final and no user reply is expected. Sent for one-shot Ask replies only
4293642954
example: replying
4293742955
created_at_ms:
4293842956
type: string

0 commit comments

Comments
 (0)