@smartytalent/mcp-tools 0.1.33-dev.26 → 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 +425 -128
- 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)."
|
|
10994
|
+
},
|
|
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."
|
|
10962
11002
|
},
|
|
10963
|
-
"
|
|
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": {
|
|
11353
|
+
"type": "string",
|
|
11354
|
+
"description": "Caller's protocol-native handle (E.164 phone for PSTN, AAD object id for WebRTC)."
|
|
11355
|
+
},
|
|
11356
|
+
"fromName": {
|
|
11142
11357
|
"type": "string",
|
|
11143
|
-
"description": "
|
|
11358
|
+
"description": "Display name of the caller at write time. Denormalised from the resolved principal."
|
|
11359
|
+
},
|
|
11360
|
+
"fromType": {
|
|
11361
|
+
"type": "string",
|
|
11362
|
+
"enum": [
|
|
11363
|
+
"user",
|
|
11364
|
+
"candidate",
|
|
11365
|
+
"talent",
|
|
11366
|
+
"guest"
|
|
11367
|
+
],
|
|
11368
|
+
"description": "Principal type of the caller."
|
|
11144
11369
|
},
|
|
11145
|
-
"
|
|
11370
|
+
"toIdentifier": {
|
|
11146
11371
|
"type": "string",
|
|
11147
|
-
"description": "
|
|
11372
|
+
"description": "Callee's protocol-native handle."
|
|
11148
11373
|
},
|
|
11149
|
-
"
|
|
11374
|
+
"toName": {
|
|
11150
11375
|
"type": "string",
|
|
11151
|
-
"description": "
|
|
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)."
|
|
11171
11413
|
},
|
|
11172
|
-
"
|
|
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."
|
|
11433
|
+
},
|
|
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",
|
|
@@ -12801,9 +13097,10 @@
|
|
|
12801
13097
|
"properties": {
|
|
12802
13098
|
"filterResourceType": {
|
|
12803
13099
|
"type": "string",
|
|
12804
|
-
"description": "Only return aggregates for this resource type (e.g. emails).",
|
|
13100
|
+
"description": "Only return aggregates for this resource type (e.g. emails, chats).",
|
|
12805
13101
|
"enum": [
|
|
12806
13102
|
"emails",
|
|
13103
|
+
"chats",
|
|
12807
13104
|
"candidates",
|
|
12808
13105
|
"conversations",
|
|
12809
13106
|
"jobs",
|