@smartytalent/mcp-tools 0.1.33-dev.25 → 0.1.33-dev.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tools.json +470 -130
- package/package.json +1 -1
package/dist/tools.json
CHANGED
|
@@ -10889,104 +10889,186 @@
|
|
|
10889
10889
|
"attributes": {
|
|
10890
10890
|
"title": "CallAttributesSchema",
|
|
10891
10891
|
"type": "object",
|
|
10892
|
+
"description": "Cross-protocol call attributes. Mirror of chat with voice-\nspecific extensions: lifecycle covers provider phases (queued\n-> ringing -> in-progress -> completed) plus the operator\nreview window (draft -> scheduled -> queued). aiMode toggles\nwhether the AI agent is the active speaker, a silent observer,\nor fully off. transcript + summary are multilingual dicts\nmirroring email/chat body shape; the call AI translate Step\nFunction fans them across tenant locales.",
|
|
10892
10893
|
"properties": {
|
|
10893
|
-
"name": {
|
|
10894
|
-
"type": "string",
|
|
10895
|
-
"description": "Call title, e.g. Inbound call from John"
|
|
10896
|
-
},
|
|
10897
10894
|
"direction": {
|
|
10898
10895
|
"type": "string",
|
|
10899
10896
|
"enum": [
|
|
10900
10897
|
"inbound",
|
|
10901
|
-
"outbound"
|
|
10902
|
-
"ai-bot"
|
|
10898
|
+
"outbound"
|
|
10903
10899
|
],
|
|
10904
|
-
"description": "Call direction"
|
|
10900
|
+
"description": "Call direction relative to boe (inbound = caller dialed boe; outbound = boe placed the call)."
|
|
10905
10901
|
},
|
|
10906
|
-
"
|
|
10902
|
+
"protocol": {
|
|
10907
10903
|
"type": "string",
|
|
10908
10904
|
"enum": [
|
|
10909
|
-
"
|
|
10910
|
-
"
|
|
10911
|
-
"follow-up",
|
|
10912
|
-
"screening",
|
|
10913
|
-
"reference-check"
|
|
10905
|
+
"phone",
|
|
10906
|
+
"webrtc"
|
|
10914
10907
|
],
|
|
10915
|
-
"description": "
|
|
10908
|
+
"description": "Wire protocol. Phone is PSTN via Twilio; WebRTC reserves the slot for the future recruiter Voice SDK in the admin web app."
|
|
10916
10909
|
},
|
|
10917
|
-
"
|
|
10918
|
-
"type": "integer",
|
|
10919
|
-
"description": "Call duration in seconds"
|
|
10920
|
-
},
|
|
10921
|
-
"outcome": {
|
|
10910
|
+
"status": {
|
|
10922
10911
|
"type": "string",
|
|
10923
10912
|
"enum": [
|
|
10924
|
-
"
|
|
10925
|
-
"
|
|
10926
|
-
"
|
|
10913
|
+
"draft",
|
|
10914
|
+
"scheduled",
|
|
10915
|
+
"cancelled",
|
|
10916
|
+
"queued",
|
|
10917
|
+
"ringing",
|
|
10918
|
+
"in-progress",
|
|
10919
|
+
"completed",
|
|
10920
|
+
"failed",
|
|
10927
10921
|
"no-answer",
|
|
10928
|
-
"busy"
|
|
10922
|
+
"busy",
|
|
10923
|
+
"voicemail",
|
|
10924
|
+
"abandoned",
|
|
10925
|
+
"archived"
|
|
10929
10926
|
],
|
|
10930
|
-
"description": "
|
|
10927
|
+
"description": "Lifecycle state. Outbound rows that go through an operator review window or explicit scheduling start at `draft` (editable) or `scheduled` (Schedule armed for fireAt); on Schedule fire they progress queued -> ringing -> in-progress -> completed (or failed / no-answer / busy / voicemail). `abandoned` covers inbound calls where the caller hung up before the AI answered. `cancelled` is operator hard-kill before dial. `archived` is a terminal soft-delete."
|
|
10931
10928
|
},
|
|
10932
|
-
"
|
|
10929
|
+
"fromIdentifier": {
|
|
10933
10930
|
"type": "string",
|
|
10934
|
-
"description": "Caller
|
|
10931
|
+
"description": "Caller's protocol-native handle (E.164 phone for PSTN, AAD object id for WebRTC)."
|
|
10935
10932
|
},
|
|
10936
|
-
"
|
|
10933
|
+
"fromName": {
|
|
10937
10934
|
"type": "string",
|
|
10938
|
-
"description": "
|
|
10935
|
+
"description": "Display name of the caller at write time. Denormalised from the resolved principal."
|
|
10939
10936
|
},
|
|
10940
|
-
"
|
|
10937
|
+
"fromType": {
|
|
10941
10938
|
"type": "string",
|
|
10942
|
-
"
|
|
10939
|
+
"enum": [
|
|
10940
|
+
"user",
|
|
10941
|
+
"candidate",
|
|
10942
|
+
"talent",
|
|
10943
|
+
"guest"
|
|
10944
|
+
],
|
|
10945
|
+
"description": "Principal type of the caller."
|
|
10946
|
+
},
|
|
10947
|
+
"toIdentifier": {
|
|
10948
|
+
"type": "string",
|
|
10949
|
+
"description": "Callee's protocol-native handle."
|
|
10950
|
+
},
|
|
10951
|
+
"toName": {
|
|
10952
|
+
"type": "string",
|
|
10953
|
+
"description": "Display name of the callee at write time."
|
|
10954
|
+
},
|
|
10955
|
+
"toType": {
|
|
10956
|
+
"type": "string",
|
|
10957
|
+
"enum": [
|
|
10958
|
+
"user",
|
|
10959
|
+
"candidate",
|
|
10960
|
+
"talent",
|
|
10961
|
+
"guest"
|
|
10962
|
+
],
|
|
10963
|
+
"description": "Principal type of the callee."
|
|
10943
10964
|
},
|
|
10944
10965
|
"transcript": {
|
|
10945
10966
|
"type": "object",
|
|
10946
|
-
"description": "
|
|
10967
|
+
"description": "Multilingual transcript keyed by BCP 47 locale (e.g. {`en-US`: `Hi`, `pl-PL`: `Cześć`}). Source locale is captured first; the AI translate Step Function fills in the rest of the tenant's active locales.",
|
|
10968
|
+
"additionalProperties": {
|
|
10969
|
+
"type": "string"
|
|
10970
|
+
}
|
|
10947
10971
|
},
|
|
10948
|
-
"
|
|
10949
|
-
"type": "
|
|
10950
|
-
"description": "
|
|
10951
|
-
"
|
|
10952
|
-
"type": "
|
|
10972
|
+
"summary": {
|
|
10973
|
+
"type": "object",
|
|
10974
|
+
"description": "Multilingual post-call summary keyed by BCP 47 locale. LLM-generated after call ends.",
|
|
10975
|
+
"additionalProperties": {
|
|
10976
|
+
"type": "string"
|
|
10953
10977
|
}
|
|
10954
10978
|
},
|
|
10955
|
-
"
|
|
10979
|
+
"criteriaScoring": {
|
|
10980
|
+
"type": "object",
|
|
10981
|
+
"description": "Per-criterion scoring extracted from the transcript when the call is tied to a job (relationships.job). Map of criterion key -> {score, evidence, confidence}."
|
|
10982
|
+
},
|
|
10983
|
+
"startedAt": {
|
|
10956
10984
|
"type": "string",
|
|
10957
|
-
"description": "
|
|
10985
|
+
"description": "ISO 8601 timestamp when the call started (ringing began). Set on outbound dial or inbound webhook arrival."
|
|
10958
10986
|
},
|
|
10959
|
-
"
|
|
10960
|
-
"type": "
|
|
10961
|
-
"description": "
|
|
10987
|
+
"answeredAt": {
|
|
10988
|
+
"type": "string",
|
|
10989
|
+
"description": "ISO 8601 timestamp when the call connected (recipient picked up)."
|
|
10990
|
+
},
|
|
10991
|
+
"endedAt": {
|
|
10992
|
+
"type": "string",
|
|
10993
|
+
"description": "ISO 8601 timestamp when the call ended (terminal status reached)."
|
|
10962
10994
|
},
|
|
10963
|
-
"
|
|
10995
|
+
"durationSec": {
|
|
10996
|
+
"type": "integer",
|
|
10997
|
+
"description": "Call duration in seconds (endedAt - answeredAt)."
|
|
10998
|
+
},
|
|
10999
|
+
"scheduledFireAt": {
|
|
11000
|
+
"type": "string",
|
|
11001
|
+
"description": "ISO 8601 timestamp at which the Schedule armed for this call will fire and place the outbound dial. Operators can PATCH to reschedule; the eventbus PATCHes the underlying Schedule row in lockstep. Mirror of email/chat scheduledFireAt."
|
|
11002
|
+
},
|
|
11003
|
+
"scheduleId": {
|
|
11004
|
+
"type": "string",
|
|
11005
|
+
"description": "FK denormalisation of relationships.schedule for cheap read paths."
|
|
11006
|
+
},
|
|
11007
|
+
"conferenceSid": {
|
|
11008
|
+
"type": "string",
|
|
11009
|
+
"description": "Twilio conference id when the call is a multi-party (3-way) conference. Null for 1:1."
|
|
11010
|
+
},
|
|
11011
|
+
"isConference": {
|
|
10964
11012
|
"type": "boolean",
|
|
10965
|
-
"description": "
|
|
11013
|
+
"description": "True when the call is a multi-party conference (recruiter joining via Voice SDK + candidate + boe AI). False for 1:1."
|
|
10966
11014
|
},
|
|
10967
|
-
"
|
|
11015
|
+
"aiMode": {
|
|
11016
|
+
"type": "string",
|
|
11017
|
+
"enum": [
|
|
11018
|
+
"active",
|
|
11019
|
+
"observer",
|
|
11020
|
+
"silent"
|
|
11021
|
+
],
|
|
11022
|
+
"description": "How the AI agent participates. `active` = AI speaks (default for boe ↔ candidate). `observer` = AI listens, transcribes, surfaces real-time suggestions to the recruiter UI but does not speak. `silent` = recording + post-call analysis only, no AI in the call."
|
|
11023
|
+
},
|
|
11024
|
+
"plannedTopics": {
|
|
10968
11025
|
"type": "array",
|
|
10969
|
-
"description": "
|
|
11026
|
+
"description": "List of topic keys the AI agent should cover during the call (e.g. ['salary', 'experience', 'languagesSpoken']). Operator-editable in the review window before fire.",
|
|
10970
11027
|
"items": {
|
|
10971
|
-
"type": "
|
|
11028
|
+
"type": "string"
|
|
10972
11029
|
}
|
|
10973
11030
|
},
|
|
10974
|
-
"
|
|
11031
|
+
"systemPrompt": {
|
|
11032
|
+
"type": "string",
|
|
11033
|
+
"description": "Operator-editable agent instructions used as the OpenAI Realtime session's system prompt at fire time. Mirror of email body in the operator review window: edit before fire, the dialed call uses the latest version."
|
|
11034
|
+
},
|
|
11035
|
+
"recording": {
|
|
10975
11036
|
"type": "object",
|
|
10976
|
-
"description": "
|
|
11037
|
+
"description": "Recording artifacts. Raw G.711 µ-law file is captured live; the audio convert Lambda emits the MP3 derivatives post-call.",
|
|
11038
|
+
"properties": {
|
|
11039
|
+
"type": {
|
|
11040
|
+
"type": "string",
|
|
11041
|
+
"enum": [
|
|
11042
|
+
"dual-channel",
|
|
11043
|
+
"mixed"
|
|
11044
|
+
],
|
|
11045
|
+
"description": "Recording layout: dual-channel separates speakers per Twilio leg; mixed is single-track combined."
|
|
11046
|
+
},
|
|
11047
|
+
"rawUrl": {
|
|
11048
|
+
"type": "string",
|
|
11049
|
+
"description": "S3 URI to the raw G.711 µ-law audio."
|
|
11050
|
+
},
|
|
11051
|
+
"mixedMp3Url": {
|
|
11052
|
+
"type": "string",
|
|
11053
|
+
"description": "S3 URI to the mixed conversation MP3."
|
|
11054
|
+
},
|
|
11055
|
+
"humanOnlyMp3Url": {
|
|
11056
|
+
"type": "string",
|
|
11057
|
+
"description": "S3 URI to the human-only MP3 (silent during AI turns)."
|
|
11058
|
+
},
|
|
11059
|
+
"aiOnlyMp3Url": {
|
|
11060
|
+
"type": "string",
|
|
11061
|
+
"description": "S3 URI to the AI-only MP3 (silent during human turns)."
|
|
11062
|
+
}
|
|
11063
|
+
}
|
|
10977
11064
|
},
|
|
10978
|
-
"
|
|
11065
|
+
"languageCode": {
|
|
10979
11066
|
"type": "string",
|
|
10980
|
-
"description": "
|
|
11067
|
+
"description": "BCP 47 locale of the call (the locale key initially populated in transcript). Detected from the caller's settings or call audio."
|
|
10981
11068
|
},
|
|
10982
|
-
"
|
|
11069
|
+
"shortCode": {
|
|
10983
11070
|
"type": "string",
|
|
10984
|
-
"
|
|
10985
|
-
"active",
|
|
10986
|
-
"draft",
|
|
10987
|
-
"archived",
|
|
10988
|
-
"failed"
|
|
10989
|
-
]
|
|
11071
|
+
"description": "Unique short identifier (provider/lookup correlation)."
|
|
10990
11072
|
},
|
|
10991
11073
|
"timestamps": {
|
|
10992
11074
|
"title": "ResourceTimestampsSchema",
|
|
@@ -11007,23 +11089,155 @@
|
|
|
11007
11089
|
"relationships": {
|
|
11008
11090
|
"title": "CallRelationshipsSchema",
|
|
11009
11091
|
"type": "object",
|
|
11092
|
+
"description": "Relationship slots on the call resource. All to-one. Direction\n+ attributes.fromType / toType tell you which side of the\nconversation each principal occupies. Mirror of chat's slot\nset with two voice-specific additions: `job` (call about a\nspecific opening) and `brief` (call collecting / clarifying\na specific brief). `boeUser` is split from `user` so the AI\nagent has a dedicated slot - `user` is reserved for human\ncounterparties (3-way conference recruiter, future user-to-\nuser webapp/Teams chat).",
|
|
11010
11093
|
"properties": {
|
|
11011
|
-
"
|
|
11012
|
-
"title": "
|
|
11094
|
+
"conversation": {
|
|
11095
|
+
"title": "CallRelationshipsConversationSchema",
|
|
11096
|
+
"description": "Thread the call belongs to. Phone calls in the same workflow run share a conversation; per-thread queries via ConversationIdIndex.",
|
|
11013
11097
|
"type": "object",
|
|
11014
11098
|
"properties": {
|
|
11015
11099
|
"data": {
|
|
11016
|
-
"
|
|
11017
|
-
"
|
|
11018
|
-
|
|
11019
|
-
"type":
|
|
11020
|
-
|
|
11021
|
-
|
|
11022
|
-
|
|
11023
|
-
|
|
11024
|
-
|
|
11025
|
-
|
|
11026
|
-
|
|
11100
|
+
"title": "CallRelationshipsConversationDataSchema",
|
|
11101
|
+
"type": "object",
|
|
11102
|
+
"properties": {
|
|
11103
|
+
"type": {
|
|
11104
|
+
"type": "string"
|
|
11105
|
+
},
|
|
11106
|
+
"id": {
|
|
11107
|
+
"type": "string"
|
|
11108
|
+
}
|
|
11109
|
+
}
|
|
11110
|
+
}
|
|
11111
|
+
}
|
|
11112
|
+
},
|
|
11113
|
+
"candidate": {
|
|
11114
|
+
"title": "CallRelationshipsCandidateSchema",
|
|
11115
|
+
"description": "External candidate principal. Set when fromType=candidate (inbound) or toType=candidate (outbound).",
|
|
11116
|
+
"type": "object",
|
|
11117
|
+
"properties": {
|
|
11118
|
+
"data": {
|
|
11119
|
+
"title": "CallRelationshipsCandidateDataSchema",
|
|
11120
|
+
"type": "object",
|
|
11121
|
+
"properties": {
|
|
11122
|
+
"type": {
|
|
11123
|
+
"type": "string"
|
|
11124
|
+
},
|
|
11125
|
+
"id": {
|
|
11126
|
+
"type": "string"
|
|
11127
|
+
}
|
|
11128
|
+
}
|
|
11129
|
+
}
|
|
11130
|
+
}
|
|
11131
|
+
},
|
|
11132
|
+
"talent": {
|
|
11133
|
+
"title": "CallRelationshipsTalentSchema",
|
|
11134
|
+
"description": "External talent principal. Set when fromType=talent (inbound) or toType=talent (outbound).",
|
|
11135
|
+
"type": "object",
|
|
11136
|
+
"properties": {
|
|
11137
|
+
"data": {
|
|
11138
|
+
"title": "CallRelationshipsTalentDataSchema",
|
|
11139
|
+
"type": "object",
|
|
11140
|
+
"properties": {
|
|
11141
|
+
"type": {
|
|
11142
|
+
"type": "string"
|
|
11143
|
+
},
|
|
11144
|
+
"id": {
|
|
11145
|
+
"type": "string"
|
|
11146
|
+
}
|
|
11147
|
+
}
|
|
11148
|
+
}
|
|
11149
|
+
}
|
|
11150
|
+
},
|
|
11151
|
+
"user": {
|
|
11152
|
+
"title": "CallRelationshipsUserSchema",
|
|
11153
|
+
"description": "Internal human user (employee). Reserved for 3-way conference recruiters (boe + recruiter + candidate). Today this is typically null on boe-mediated 1:1 calls - the boe AI agent goes in `boeUser`, not here.",
|
|
11154
|
+
"type": "object",
|
|
11155
|
+
"properties": {
|
|
11156
|
+
"data": {
|
|
11157
|
+
"title": "CallRelationshipsUserDataSchema",
|
|
11158
|
+
"type": "object",
|
|
11159
|
+
"properties": {
|
|
11160
|
+
"type": {
|
|
11161
|
+
"type": "string"
|
|
11162
|
+
},
|
|
11163
|
+
"id": {
|
|
11164
|
+
"type": "string"
|
|
11165
|
+
}
|
|
11166
|
+
}
|
|
11167
|
+
}
|
|
11168
|
+
}
|
|
11169
|
+
},
|
|
11170
|
+
"boeUser": {
|
|
11171
|
+
"title": "CallRelationshipsBoeUserSchema",
|
|
11172
|
+
"description": "Boe AI agent involved in the call. Mirror of tenant.relationships.boeUser - always populated when boe is on the call. Splitting this from the generic `user` slot keeps the semantics clean: `user` is for human counterparties, `boeUser` is the AI agent.",
|
|
11173
|
+
"type": "object",
|
|
11174
|
+
"properties": {
|
|
11175
|
+
"data": {
|
|
11176
|
+
"title": "CallRelationshipsBoeUserDataSchema",
|
|
11177
|
+
"type": "object",
|
|
11178
|
+
"properties": {
|
|
11179
|
+
"type": {
|
|
11180
|
+
"type": "string"
|
|
11181
|
+
},
|
|
11182
|
+
"id": {
|
|
11183
|
+
"type": "string"
|
|
11184
|
+
}
|
|
11185
|
+
}
|
|
11186
|
+
}
|
|
11187
|
+
}
|
|
11188
|
+
},
|
|
11189
|
+
"job": {
|
|
11190
|
+
"title": "CallRelationshipsJobSchema",
|
|
11191
|
+
"description": "Job opening this call is about. Set on screening calls + phone-brief outbound clarifications targeting a specific opening. Drives criteriaScoring against the job's criteria.",
|
|
11192
|
+
"type": "object",
|
|
11193
|
+
"properties": {
|
|
11194
|
+
"data": {
|
|
11195
|
+
"title": "CallRelationshipsJobDataSchema",
|
|
11196
|
+
"type": "object",
|
|
11197
|
+
"properties": {
|
|
11198
|
+
"type": {
|
|
11199
|
+
"type": "string"
|
|
11200
|
+
},
|
|
11201
|
+
"id": {
|
|
11202
|
+
"type": "string"
|
|
11203
|
+
}
|
|
11204
|
+
}
|
|
11205
|
+
}
|
|
11206
|
+
}
|
|
11207
|
+
},
|
|
11208
|
+
"brief": {
|
|
11209
|
+
"title": "CallRelationshipsBriefSchema",
|
|
11210
|
+
"description": "Brief this call is collecting / clarifying. Set on phone-brief discovery + clarification calls. Drives the `Calls for brief X` view in the operator UI.",
|
|
11211
|
+
"type": "object",
|
|
11212
|
+
"properties": {
|
|
11213
|
+
"data": {
|
|
11214
|
+
"title": "CallRelationshipsBriefDataSchema",
|
|
11215
|
+
"type": "object",
|
|
11216
|
+
"properties": {
|
|
11217
|
+
"type": {
|
|
11218
|
+
"type": "string"
|
|
11219
|
+
},
|
|
11220
|
+
"id": {
|
|
11221
|
+
"type": "string"
|
|
11222
|
+
}
|
|
11223
|
+
}
|
|
11224
|
+
}
|
|
11225
|
+
}
|
|
11226
|
+
},
|
|
11227
|
+
"schedule": {
|
|
11228
|
+
"title": "CallRelationshipsScheduleSchema",
|
|
11229
|
+
"description": "Schedule row armed for this call's outbound dial. Set when scheduledFireAt is populated; null on inbound rows or on outbound rows that bypass the review window. Operators reschedule/cancel via PATCH/DELETE on the call resource - the eventbus reflects those changes onto the Schedule row, never the other way around.",
|
|
11230
|
+
"type": "object",
|
|
11231
|
+
"properties": {
|
|
11232
|
+
"data": {
|
|
11233
|
+
"title": "CallRelationshipsScheduleDataSchema",
|
|
11234
|
+
"type": "object",
|
|
11235
|
+
"properties": {
|
|
11236
|
+
"type": {
|
|
11237
|
+
"type": "string"
|
|
11238
|
+
},
|
|
11239
|
+
"id": {
|
|
11240
|
+
"type": "string"
|
|
11027
11241
|
}
|
|
11028
11242
|
}
|
|
11029
11243
|
}
|
|
@@ -11098,104 +11312,186 @@
|
|
|
11098
11312
|
"attributes": {
|
|
11099
11313
|
"title": "CallAttributesSchema",
|
|
11100
11314
|
"type": "object",
|
|
11315
|
+
"description": "Cross-protocol call attributes. Mirror of chat with voice-\nspecific extensions: lifecycle covers provider phases (queued\n-> ringing -> in-progress -> completed) plus the operator\nreview window (draft -> scheduled -> queued). aiMode toggles\nwhether the AI agent is the active speaker, a silent observer,\nor fully off. transcript + summary are multilingual dicts\nmirroring email/chat body shape; the call AI translate Step\nFunction fans them across tenant locales.",
|
|
11101
11316
|
"properties": {
|
|
11102
|
-
"name": {
|
|
11103
|
-
"type": "string",
|
|
11104
|
-
"description": "Call title, e.g. Inbound call from John"
|
|
11105
|
-
},
|
|
11106
11317
|
"direction": {
|
|
11107
11318
|
"type": "string",
|
|
11108
11319
|
"enum": [
|
|
11109
11320
|
"inbound",
|
|
11110
|
-
"outbound"
|
|
11111
|
-
"ai-bot"
|
|
11321
|
+
"outbound"
|
|
11112
11322
|
],
|
|
11113
|
-
"description": "Call direction"
|
|
11323
|
+
"description": "Call direction relative to boe (inbound = caller dialed boe; outbound = boe placed the call)."
|
|
11114
11324
|
},
|
|
11115
|
-
"
|
|
11325
|
+
"protocol": {
|
|
11116
11326
|
"type": "string",
|
|
11117
11327
|
"enum": [
|
|
11118
|
-
"
|
|
11119
|
-
"
|
|
11120
|
-
"follow-up",
|
|
11121
|
-
"screening",
|
|
11122
|
-
"reference-check"
|
|
11328
|
+
"phone",
|
|
11329
|
+
"webrtc"
|
|
11123
11330
|
],
|
|
11124
|
-
"description": "
|
|
11125
|
-
},
|
|
11126
|
-
"duration": {
|
|
11127
|
-
"type": "integer",
|
|
11128
|
-
"description": "Call duration in seconds"
|
|
11331
|
+
"description": "Wire protocol. Phone is PSTN via Twilio; WebRTC reserves the slot for the future recruiter Voice SDK in the admin web app."
|
|
11129
11332
|
},
|
|
11130
|
-
"
|
|
11333
|
+
"status": {
|
|
11131
11334
|
"type": "string",
|
|
11132
11335
|
"enum": [
|
|
11133
|
-
"
|
|
11134
|
-
"
|
|
11135
|
-
"
|
|
11336
|
+
"draft",
|
|
11337
|
+
"scheduled",
|
|
11338
|
+
"cancelled",
|
|
11339
|
+
"queued",
|
|
11340
|
+
"ringing",
|
|
11341
|
+
"in-progress",
|
|
11342
|
+
"completed",
|
|
11343
|
+
"failed",
|
|
11136
11344
|
"no-answer",
|
|
11137
|
-
"busy"
|
|
11345
|
+
"busy",
|
|
11346
|
+
"voicemail",
|
|
11347
|
+
"abandoned",
|
|
11348
|
+
"archived"
|
|
11138
11349
|
],
|
|
11139
|
-
"description": "
|
|
11350
|
+
"description": "Lifecycle state. Outbound rows that go through an operator review window or explicit scheduling start at `draft` (editable) or `scheduled` (Schedule armed for fireAt); on Schedule fire they progress queued -> ringing -> in-progress -> completed (or failed / no-answer / busy / voicemail). `abandoned` covers inbound calls where the caller hung up before the AI answered. `cancelled` is operator hard-kill before dial. `archived` is a terminal soft-delete."
|
|
11140
11351
|
},
|
|
11141
|
-
"
|
|
11352
|
+
"fromIdentifier": {
|
|
11142
11353
|
"type": "string",
|
|
11143
|
-
"description": "Caller
|
|
11354
|
+
"description": "Caller's protocol-native handle (E.164 phone for PSTN, AAD object id for WebRTC)."
|
|
11144
11355
|
},
|
|
11145
|
-
"
|
|
11356
|
+
"fromName": {
|
|
11146
11357
|
"type": "string",
|
|
11147
|
-
"description": "
|
|
11358
|
+
"description": "Display name of the caller at write time. Denormalised from the resolved principal."
|
|
11148
11359
|
},
|
|
11149
|
-
"
|
|
11360
|
+
"fromType": {
|
|
11150
11361
|
"type": "string",
|
|
11151
|
-
"
|
|
11362
|
+
"enum": [
|
|
11363
|
+
"user",
|
|
11364
|
+
"candidate",
|
|
11365
|
+
"talent",
|
|
11366
|
+
"guest"
|
|
11367
|
+
],
|
|
11368
|
+
"description": "Principal type of the caller."
|
|
11369
|
+
},
|
|
11370
|
+
"toIdentifier": {
|
|
11371
|
+
"type": "string",
|
|
11372
|
+
"description": "Callee's protocol-native handle."
|
|
11373
|
+
},
|
|
11374
|
+
"toName": {
|
|
11375
|
+
"type": "string",
|
|
11376
|
+
"description": "Display name of the callee at write time."
|
|
11377
|
+
},
|
|
11378
|
+
"toType": {
|
|
11379
|
+
"type": "string",
|
|
11380
|
+
"enum": [
|
|
11381
|
+
"user",
|
|
11382
|
+
"candidate",
|
|
11383
|
+
"talent",
|
|
11384
|
+
"guest"
|
|
11385
|
+
],
|
|
11386
|
+
"description": "Principal type of the callee."
|
|
11152
11387
|
},
|
|
11153
11388
|
"transcript": {
|
|
11154
11389
|
"type": "object",
|
|
11155
|
-
"description": "
|
|
11390
|
+
"description": "Multilingual transcript keyed by BCP 47 locale (e.g. {`en-US`: `Hi`, `pl-PL`: `Cześć`}). Source locale is captured first; the AI translate Step Function fills in the rest of the tenant's active locales.",
|
|
11391
|
+
"additionalProperties": {
|
|
11392
|
+
"type": "string"
|
|
11393
|
+
}
|
|
11156
11394
|
},
|
|
11157
|
-
"
|
|
11158
|
-
"type": "
|
|
11159
|
-
"description": "
|
|
11160
|
-
"
|
|
11161
|
-
"type": "
|
|
11395
|
+
"summary": {
|
|
11396
|
+
"type": "object",
|
|
11397
|
+
"description": "Multilingual post-call summary keyed by BCP 47 locale. LLM-generated after call ends.",
|
|
11398
|
+
"additionalProperties": {
|
|
11399
|
+
"type": "string"
|
|
11162
11400
|
}
|
|
11163
11401
|
},
|
|
11164
|
-
"
|
|
11402
|
+
"criteriaScoring": {
|
|
11403
|
+
"type": "object",
|
|
11404
|
+
"description": "Per-criterion scoring extracted from the transcript when the call is tied to a job (relationships.job). Map of criterion key -> {score, evidence, confidence}."
|
|
11405
|
+
},
|
|
11406
|
+
"startedAt": {
|
|
11165
11407
|
"type": "string",
|
|
11166
|
-
"description": "
|
|
11408
|
+
"description": "ISO 8601 timestamp when the call started (ringing began). Set on outbound dial or inbound webhook arrival."
|
|
11167
11409
|
},
|
|
11168
|
-
"
|
|
11169
|
-
"type": "
|
|
11170
|
-
"description": "
|
|
11410
|
+
"answeredAt": {
|
|
11411
|
+
"type": "string",
|
|
11412
|
+
"description": "ISO 8601 timestamp when the call connected (recipient picked up)."
|
|
11413
|
+
},
|
|
11414
|
+
"endedAt": {
|
|
11415
|
+
"type": "string",
|
|
11416
|
+
"description": "ISO 8601 timestamp when the call ended (terminal status reached)."
|
|
11417
|
+
},
|
|
11418
|
+
"durationSec": {
|
|
11419
|
+
"type": "integer",
|
|
11420
|
+
"description": "Call duration in seconds (endedAt - answeredAt)."
|
|
11421
|
+
},
|
|
11422
|
+
"scheduledFireAt": {
|
|
11423
|
+
"type": "string",
|
|
11424
|
+
"description": "ISO 8601 timestamp at which the Schedule armed for this call will fire and place the outbound dial. Operators can PATCH to reschedule; the eventbus PATCHes the underlying Schedule row in lockstep. Mirror of email/chat scheduledFireAt."
|
|
11425
|
+
},
|
|
11426
|
+
"scheduleId": {
|
|
11427
|
+
"type": "string",
|
|
11428
|
+
"description": "FK denormalisation of relationships.schedule for cheap read paths."
|
|
11429
|
+
},
|
|
11430
|
+
"conferenceSid": {
|
|
11431
|
+
"type": "string",
|
|
11432
|
+
"description": "Twilio conference id when the call is a multi-party (3-way) conference. Null for 1:1."
|
|
11171
11433
|
},
|
|
11172
|
-
"
|
|
11434
|
+
"isConference": {
|
|
11173
11435
|
"type": "boolean",
|
|
11174
|
-
"description": "
|
|
11436
|
+
"description": "True when the call is a multi-party conference (recruiter joining via Voice SDK + candidate + boe AI). False for 1:1."
|
|
11175
11437
|
},
|
|
11176
|
-
"
|
|
11438
|
+
"aiMode": {
|
|
11439
|
+
"type": "string",
|
|
11440
|
+
"enum": [
|
|
11441
|
+
"active",
|
|
11442
|
+
"observer",
|
|
11443
|
+
"silent"
|
|
11444
|
+
],
|
|
11445
|
+
"description": "How the AI agent participates. `active` = AI speaks (default for boe ↔ candidate). `observer` = AI listens, transcribes, surfaces real-time suggestions to the recruiter UI but does not speak. `silent` = recording + post-call analysis only, no AI in the call."
|
|
11446
|
+
},
|
|
11447
|
+
"plannedTopics": {
|
|
11177
11448
|
"type": "array",
|
|
11178
|
-
"description": "
|
|
11449
|
+
"description": "List of topic keys the AI agent should cover during the call (e.g. ['salary', 'experience', 'languagesSpoken']). Operator-editable in the review window before fire.",
|
|
11179
11450
|
"items": {
|
|
11180
|
-
"type": "
|
|
11451
|
+
"type": "string"
|
|
11181
11452
|
}
|
|
11182
11453
|
},
|
|
11183
|
-
"
|
|
11454
|
+
"systemPrompt": {
|
|
11455
|
+
"type": "string",
|
|
11456
|
+
"description": "Operator-editable agent instructions used as the OpenAI Realtime session's system prompt at fire time. Mirror of email body in the operator review window: edit before fire, the dialed call uses the latest version."
|
|
11457
|
+
},
|
|
11458
|
+
"recording": {
|
|
11184
11459
|
"type": "object",
|
|
11185
|
-
"description": "
|
|
11460
|
+
"description": "Recording artifacts. Raw G.711 µ-law file is captured live; the audio convert Lambda emits the MP3 derivatives post-call.",
|
|
11461
|
+
"properties": {
|
|
11462
|
+
"type": {
|
|
11463
|
+
"type": "string",
|
|
11464
|
+
"enum": [
|
|
11465
|
+
"dual-channel",
|
|
11466
|
+
"mixed"
|
|
11467
|
+
],
|
|
11468
|
+
"description": "Recording layout: dual-channel separates speakers per Twilio leg; mixed is single-track combined."
|
|
11469
|
+
},
|
|
11470
|
+
"rawUrl": {
|
|
11471
|
+
"type": "string",
|
|
11472
|
+
"description": "S3 URI to the raw G.711 µ-law audio."
|
|
11473
|
+
},
|
|
11474
|
+
"mixedMp3Url": {
|
|
11475
|
+
"type": "string",
|
|
11476
|
+
"description": "S3 URI to the mixed conversation MP3."
|
|
11477
|
+
},
|
|
11478
|
+
"humanOnlyMp3Url": {
|
|
11479
|
+
"type": "string",
|
|
11480
|
+
"description": "S3 URI to the human-only MP3 (silent during AI turns)."
|
|
11481
|
+
},
|
|
11482
|
+
"aiOnlyMp3Url": {
|
|
11483
|
+
"type": "string",
|
|
11484
|
+
"description": "S3 URI to the AI-only MP3 (silent during human turns)."
|
|
11485
|
+
}
|
|
11486
|
+
}
|
|
11186
11487
|
},
|
|
11187
|
-
"
|
|
11488
|
+
"languageCode": {
|
|
11188
11489
|
"type": "string",
|
|
11189
|
-
"description": "
|
|
11490
|
+
"description": "BCP 47 locale of the call (the locale key initially populated in transcript). Detected from the caller's settings or call audio."
|
|
11190
11491
|
},
|
|
11191
|
-
"
|
|
11492
|
+
"shortCode": {
|
|
11192
11493
|
"type": "string",
|
|
11193
|
-
"
|
|
11194
|
-
"active",
|
|
11195
|
-
"draft",
|
|
11196
|
-
"archived",
|
|
11197
|
-
"failed"
|
|
11198
|
-
]
|
|
11494
|
+
"description": "Unique short identifier (provider/lookup correlation)."
|
|
11199
11495
|
},
|
|
11200
11496
|
"timestamps": {
|
|
11201
11497
|
"title": "ResourceTimestampsSchema",
|
|
@@ -11410,13 +11706,24 @@
|
|
|
11410
11706
|
"type": "string",
|
|
11411
11707
|
"enum": [
|
|
11412
11708
|
"received",
|
|
11709
|
+
"draft",
|
|
11710
|
+
"scheduled",
|
|
11711
|
+
"cancelled",
|
|
11413
11712
|
"queued",
|
|
11414
11713
|
"sent",
|
|
11415
11714
|
"delivered",
|
|
11416
11715
|
"failed",
|
|
11417
11716
|
"archived"
|
|
11418
11717
|
],
|
|
11419
|
-
"description": "Lifecycle state. Inbound rows go straight to `received`. Outbound
|
|
11718
|
+
"description": "Lifecycle state. Inbound rows go straight to `received`. Outbound rows that go through an operator review window or explicit scheduling start at `draft` (editable) or `scheduled` (Schedule armed for fireAt); on Schedule fire they progress queued -> sent -> delivered (or failed). `cancelled` is the terminal state when an operator hard-killed a draft / scheduled row before fire. `archived` is a terminal soft-delete for both directions."
|
|
11719
|
+
},
|
|
11720
|
+
"scheduledFireAt": {
|
|
11721
|
+
"type": "string",
|
|
11722
|
+
"description": "ISO 8601 timestamp at which the Schedule row armed for this chat will fire. Set on direction=outbound rows that go through a review window or explicit scheduling. Operators can PATCH this to reschedule; the eventbus PATCHes the underlying Schedule row in lockstep. Mirror of email.attributes.scheduledFireAt."
|
|
11723
|
+
},
|
|
11724
|
+
"scheduleId": {
|
|
11725
|
+
"type": "string",
|
|
11726
|
+
"description": "FK denormalisation of relationships.schedule for cheap read paths. Populated by the chat eventbus after it arms a Schedule row in response to chat:created with scheduledFireAt set. Mirror of email.attributes.scheduleId."
|
|
11420
11727
|
},
|
|
11421
11728
|
"languageCode": {
|
|
11422
11729
|
"type": "string",
|
|
@@ -11541,6 +11848,25 @@
|
|
|
11541
11848
|
}
|
|
11542
11849
|
}
|
|
11543
11850
|
}
|
|
11851
|
+
},
|
|
11852
|
+
"schedule": {
|
|
11853
|
+
"title": "ChatRelationshipsScheduleSchema",
|
|
11854
|
+
"description": "Schedule row armed for this chat's outbound dispatch. Set when scheduledFireAt is populated; null on inbound rows or on outbound rows that bypass the review window. Operators reschedule/cancel via PATCH/DELETE on the chat resource - the eventbus reflects those changes onto the Schedule row, never the other way around.",
|
|
11855
|
+
"type": "object",
|
|
11856
|
+
"properties": {
|
|
11857
|
+
"data": {
|
|
11858
|
+
"title": "ChatRelationshipsScheduleDataSchema",
|
|
11859
|
+
"type": "object",
|
|
11860
|
+
"properties": {
|
|
11861
|
+
"type": {
|
|
11862
|
+
"type": "string"
|
|
11863
|
+
},
|
|
11864
|
+
"id": {
|
|
11865
|
+
"type": "string"
|
|
11866
|
+
}
|
|
11867
|
+
}
|
|
11868
|
+
}
|
|
11869
|
+
}
|
|
11544
11870
|
}
|
|
11545
11871
|
}
|
|
11546
11872
|
},
|
|
@@ -11683,13 +12009,24 @@
|
|
|
11683
12009
|
"type": "string",
|
|
11684
12010
|
"enum": [
|
|
11685
12011
|
"received",
|
|
12012
|
+
"draft",
|
|
12013
|
+
"scheduled",
|
|
12014
|
+
"cancelled",
|
|
11686
12015
|
"queued",
|
|
11687
12016
|
"sent",
|
|
11688
12017
|
"delivered",
|
|
11689
12018
|
"failed",
|
|
11690
12019
|
"archived"
|
|
11691
12020
|
],
|
|
11692
|
-
"description": "Lifecycle state. Inbound rows go straight to `received`. Outbound
|
|
12021
|
+
"description": "Lifecycle state. Inbound rows go straight to `received`. Outbound rows that go through an operator review window or explicit scheduling start at `draft` (editable) or `scheduled` (Schedule armed for fireAt); on Schedule fire they progress queued -> sent -> delivered (or failed). `cancelled` is the terminal state when an operator hard-killed a draft / scheduled row before fire. `archived` is a terminal soft-delete for both directions."
|
|
12022
|
+
},
|
|
12023
|
+
"scheduledFireAt": {
|
|
12024
|
+
"type": "string",
|
|
12025
|
+
"description": "ISO 8601 timestamp at which the Schedule row armed for this chat will fire. Set on direction=outbound rows that go through a review window or explicit scheduling. Operators can PATCH this to reschedule; the eventbus PATCHes the underlying Schedule row in lockstep. Mirror of email.attributes.scheduledFireAt."
|
|
12026
|
+
},
|
|
12027
|
+
"scheduleId": {
|
|
12028
|
+
"type": "string",
|
|
12029
|
+
"description": "FK denormalisation of relationships.schedule for cheap read paths. Populated by the chat eventbus after it arms a Schedule row in response to chat:created with scheduledFireAt set. Mirror of email.attributes.scheduleId."
|
|
11693
12030
|
},
|
|
11694
12031
|
"languageCode": {
|
|
11695
12032
|
"type": "string",
|
|
@@ -12512,6 +12849,7 @@
|
|
|
12512
12849
|
"type": "string",
|
|
12513
12850
|
"enum": [
|
|
12514
12851
|
"emails",
|
|
12852
|
+
"chats",
|
|
12515
12853
|
"candidates",
|
|
12516
12854
|
"conversations",
|
|
12517
12855
|
"jobs",
|
|
@@ -12651,6 +12989,7 @@
|
|
|
12651
12989
|
"type": "string",
|
|
12652
12990
|
"enum": [
|
|
12653
12991
|
"emails",
|
|
12992
|
+
"chats",
|
|
12654
12993
|
"candidates",
|
|
12655
12994
|
"conversations",
|
|
12656
12995
|
"jobs",
|
|
@@ -12758,9 +13097,10 @@
|
|
|
12758
13097
|
"properties": {
|
|
12759
13098
|
"filterResourceType": {
|
|
12760
13099
|
"type": "string",
|
|
12761
|
-
"description": "Only return aggregates for this resource type (e.g. emails).",
|
|
13100
|
+
"description": "Only return aggregates for this resource type (e.g. emails, chats).",
|
|
12762
13101
|
"enum": [
|
|
12763
13102
|
"emails",
|
|
13103
|
+
"chats",
|
|
12764
13104
|
"candidates",
|
|
12765
13105
|
"conversations",
|
|
12766
13106
|
"jobs",
|