@talqing/mcp 0.7.0 → 0.8.1
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/LICENSE +1 -1
- package/README.md +10 -19
- package/SKILL.md +50 -51
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/tools.json +58 -114
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -10,9 +10,8 @@ the CoPilot can build, your coding agent can build.
|
|
|
10
10
|
## What you get
|
|
11
11
|
|
|
12
12
|
One operation for everything a workspace is built out of. Agents and agent
|
|
13
|
-
tasks, tools and their operation trees, integrations and triggers,
|
|
14
|
-
|
|
15
|
-
keys and webhooks; then placing outbound calls, running call and email batches,
|
|
13
|
+
tasks, tools and their operation trees, integrations and triggers, carrier
|
|
14
|
+
accounts and phone numbers, secrets, provider keys and webhooks; then placing outbound calls, running call and email batches,
|
|
16
15
|
talking to text agents, and reading back transcripts, cost and latency. Each one
|
|
17
16
|
maps to a Talqing API endpoint, and its arguments mirror that HTTP call: path and
|
|
18
17
|
query parameters at the top level, request body under `body`.
|
|
@@ -34,19 +33,11 @@ ready-to-paste command for each client — the snippets below are what it shows.
|
|
|
34
33
|
The token authenticates as you, acts with your current role, and reaches only
|
|
35
34
|
your workspace.
|
|
36
35
|
|
|
37
|
-
**`TALQING_BASE_URL` names a region** — `https://api.in.talqing.com`,
|
|
38
|
-
`https://api.us.talqing.com` — and everything this server can reach belongs to
|
|
39
|
-
that one: an agent, its calls, its phone numbers and its credit balance are all
|
|
40
|
-
the region's. One token reaches every region — it names your workspace, not a
|
|
41
|
-
place — so working in another region is the same token and a different base URL.
|
|
42
|
-
The dashboard's snippet always carries the region you are currently looking at;
|
|
43
|
-
switch region there and copy it again.
|
|
44
|
-
|
|
45
36
|
**Claude Code**
|
|
46
37
|
|
|
47
38
|
```bash
|
|
48
39
|
claude mcp add talqing \
|
|
49
|
-
-e TALQING_BASE_URL=https://api.
|
|
40
|
+
-e TALQING_BASE_URL=https://api.talqing.com \
|
|
50
41
|
-e TALQING_API_KEY=tq_your_token \
|
|
51
42
|
-- npx -y @talqing/mcp
|
|
52
43
|
```
|
|
@@ -55,7 +46,7 @@ claude mcp add talqing \
|
|
|
55
46
|
|
|
56
47
|
```bash
|
|
57
48
|
codex mcp add talqing \
|
|
58
|
-
--env TALQING_BASE_URL=https://api.
|
|
49
|
+
--env TALQING_BASE_URL=https://api.talqing.com \
|
|
59
50
|
--env TALQING_API_KEY=tq_your_token \
|
|
60
51
|
-- npx -y @talqing/mcp
|
|
61
52
|
```
|
|
@@ -67,7 +58,7 @@ codex mcp add talqing \
|
|
|
67
58
|
[mcp_servers.talqing]
|
|
68
59
|
command = "npx"
|
|
69
60
|
args = ["-y", "@talqing/mcp"]
|
|
70
|
-
env = { TALQING_BASE_URL = "https://api.
|
|
61
|
+
env = { TALQING_BASE_URL = "https://api.talqing.com", TALQING_API_KEY = "tq_your_token" }
|
|
71
62
|
```
|
|
72
63
|
|
|
73
64
|
**Any other MCP client** — a stdio server, configured the usual way:
|
|
@@ -79,7 +70,7 @@ env = { TALQING_BASE_URL = "https://api.in.talqing.com", TALQING_API_KEY = "tq_y
|
|
|
79
70
|
"command": "npx",
|
|
80
71
|
"args": ["-y", "@talqing/mcp"],
|
|
81
72
|
"env": {
|
|
82
|
-
"TALQING_BASE_URL": "https://api.
|
|
73
|
+
"TALQING_BASE_URL": "https://api.talqing.com",
|
|
83
74
|
"TALQING_API_KEY": "tq_your_token"
|
|
84
75
|
}
|
|
85
76
|
}
|
|
@@ -107,9 +98,9 @@ Four things are deliberately out of reach:
|
|
|
107
98
|
where a human is in the loop.
|
|
108
99
|
- **Buying credits.** Reading the balance would be harmless; starting a payment
|
|
109
100
|
spends the workspace's money, and neither belongs on a coding agent's surface.
|
|
110
|
-
- **Streaming endpoints**, which are not tool-shaped.
|
|
111
|
-
equivalent here — `list_conversation_items` for a conversation
|
|
112
|
-
|
|
101
|
+
- **Streaming endpoints**, which are not tool-shaped. Each has a polling
|
|
102
|
+
equivalent here — `list_conversation_items` for a conversation — so nothing is
|
|
103
|
+
unreachable.
|
|
113
104
|
- **Deleting a call or its recording.** Every other `delete_*` removes
|
|
114
105
|
configuration you could write again; this one destroys the record of something
|
|
115
106
|
that happened, and can take a contact's memory of past calls with it.
|
|
@@ -135,7 +126,7 @@ cd mcp && npm install && npm run build
|
|
|
135
126
|
"command": "node",
|
|
136
127
|
"args": ["/absolute/path/to/talqing/mcp/dist/index.js"],
|
|
137
128
|
"env": {
|
|
138
|
-
"TALQING_BASE_URL": "https://api.
|
|
129
|
+
"TALQING_BASE_URL": "https://api.talqing.com",
|
|
139
130
|
"TALQING_API_KEY": "tq_your_token"
|
|
140
131
|
}
|
|
141
132
|
}
|
package/SKILL.md
CHANGED
|
@@ -3,9 +3,9 @@ name: talqing
|
|
|
3
3
|
description: >-
|
|
4
4
|
Build, publish and operate Talqing AI voice, video and text agents — agent
|
|
5
5
|
config and model stack, custom tools and their operation trees, MCP and
|
|
6
|
-
messaging integrations,
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
messaging integrations, phone numbers, secrets and webhooks, plus placing
|
|
7
|
+
calls and reading back transcripts, cost and latency. Use whenever working
|
|
8
|
+
against a Talqing workspace through the talqing MCP server.
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
<!-- Generated by openapi/export.py from backend/services/copilot/skill.md. Edit that file, then re-run the export. -->
|
|
@@ -14,7 +14,7 @@ description: >-
|
|
|
14
14
|
|
|
15
15
|
Talqing is a no-code builder for AI voice, video and text agents. Everything you
|
|
16
16
|
can build here you could otherwise have written as a LiveKit agent by hand: a
|
|
17
|
-
model stack, a system prompt, callable tools,
|
|
17
|
+
model stack, a system prompt, callable tools, and lifecycle hooks.
|
|
18
18
|
The same machinery also runs **agent tasks** — an agent nobody talks to, which
|
|
19
19
|
takes named inputs and returns a typed result.
|
|
20
20
|
|
|
@@ -27,12 +27,6 @@ request body under `body`. Every operation acts as the signed-in user, inside
|
|
|
27
27
|
their workspace only, with their role's permissions. Managing who is in the
|
|
28
28
|
workspace is the one thing that stays in the dashboard.
|
|
29
29
|
|
|
30
|
-
**Everything here belongs to one region.** A workspace exists in every region and
|
|
31
|
-
its resources do not: an agent, its calls, its phone numbers and its credit
|
|
32
|
-
balance all live in the region whose API you are pointed at. One token reaches
|
|
33
|
-
every region — it names the workspace, not a place — so working in another one is
|
|
34
|
-
the same token and a different base URL.
|
|
35
|
-
|
|
36
30
|
## What an agent is
|
|
37
31
|
|
|
38
32
|
An agent is a single object, `config`, plus what you attach to it:
|
|
@@ -156,13 +150,17 @@ An agent is a single object, `config`, plus what you attach to it:
|
|
|
156
150
|
create it, publish v1 and store `{"tool_id": "..."}` in its place, so the
|
|
157
151
|
agent and its tools can be built in one request. Use it for exactly that.
|
|
158
152
|
Attaching an existing tool is still `tool_id`.
|
|
159
|
-
- **`kb_ids`** — ready knowledge bases for grounded answers.
|
|
160
153
|
- **`mcps`** — external MCP servers whose tools the agent may call, each
|
|
161
154
|
`{"integration_id": "..."}` naming an active, MCP-capable integration. Which
|
|
162
155
|
of a server's tools may be called is the integration's own `allowed_tools`,
|
|
163
156
|
not this list. As with `tools`, an entry may instead carry `{"mcp": {name,
|
|
164
157
|
url, headers, allowed_tools, tools_namespace}}`, which is created as a
|
|
165
158
|
`custom_mcp` integration and replaced by its id.
|
|
159
|
+
- **`faqs`** — FAQs the agent answers from, each `{"faq_id": "..."}`, up to ten
|
|
160
|
+
(see FAQs below). As with `tools`, an entry may instead carry `{"faq": {name,
|
|
161
|
+
entries: [{question, answer}]}}`, which `create_agent` and `update_agent`
|
|
162
|
+
create as a stored FAQ and replace by its id — so an agent and its FAQ can be
|
|
163
|
+
built in one request.
|
|
166
164
|
- **`tasks`** — jobs this agent can enter and come back from, each
|
|
167
165
|
`{"name": "collect_shipping_address", "task_id": "...", "description": "...",
|
|
168
166
|
"message": "..."}`. Each becomes one ordinary tool the model can call: the
|
|
@@ -337,9 +335,8 @@ starts that object over, so send its `voice` and settings with it. Unknown field
|
|
|
337
335
|
|
|
338
336
|
The config is validated on every write. Unknown models, a model that does not
|
|
339
337
|
support the channel, a language the model does not offer, a speed outside the
|
|
340
|
-
model's range, an unpublished tool
|
|
341
|
-
|
|
342
|
-
guessing.
|
|
338
|
+
model's range, an unpublished tool — all are refused with an explanation. Read
|
|
339
|
+
the error and correct it; that is faster than guessing.
|
|
343
340
|
|
|
344
341
|
Some fields are normalized for you. Switching to `text` clears `stt`, `tts`,
|
|
345
342
|
`greeting`, `turn_handling` and `avatar`. Switching to `video` fills in an
|
|
@@ -579,7 +576,7 @@ of whatever the models cost.
|
|
|
579
576
|
A tool is one capability the agent's LLM can call mid-conversation. It has:
|
|
580
577
|
|
|
581
578
|
- **`name`** — the function name the LLM sees. A valid identifier, snake_case,
|
|
582
|
-
describing the capability.
|
|
579
|
+
describing the capability.
|
|
583
580
|
- **`description`** — tells the LLM *when* to call it. This matters as much as
|
|
584
581
|
the implementation.
|
|
585
582
|
- **`json_schema`** — the arguments the LLM supplies. Declare only values the
|
|
@@ -871,9 +868,9 @@ Each hook points at a **published tool id**, or null.
|
|
|
871
868
|
## Agent tasks
|
|
872
869
|
|
|
873
870
|
An **agent task** takes named inputs, does some work, and returns a **typed
|
|
874
|
-
structured output**. Same prompt, same model, same tools, same MCP servers
|
|
875
|
-
|
|
876
|
-
|
|
871
|
+
structured output**. Same prompt, same model, same tools, same MCP servers and
|
|
872
|
+
same lifecycle hooks as an agent — minus everything that belongs to a
|
|
873
|
+
*session*, because a task never owns one.
|
|
877
874
|
|
|
878
875
|
**It runs two ways, and declares nothing that ties it to either.** On its own —
|
|
879
876
|
`POST /v1/tasks/{task_id}/runs`, or an email batch drafting a row — it is an LLM
|
|
@@ -901,7 +898,7 @@ message, draft an opening line, take a shipping address mid-call.
|
|
|
901
898
|
a step rather than as one, so it costs no steps and real seconds. It is the
|
|
902
899
|
one media slot a task keeps, because an LLM is stateless per request and
|
|
903
900
|
swapping one in rebuilds nothing.
|
|
904
|
-
- **`
|
|
901
|
+
- **`on_enter`**, **`on_exit`**, **`on_user_turn_completed`** —
|
|
905
902
|
exactly an agent's. `on_user_turn_completed` only ever fires when an agent
|
|
906
903
|
entered the task; a standalone run has nobody to take a turn.
|
|
907
904
|
- There is no `stt`, `tts`, `realtime`, `language`, `turn_handling`, `channel`,
|
|
@@ -913,6 +910,7 @@ message, draft an opening line, take a shipping address mid-call.
|
|
|
913
910
|
- **`tools`** / **`mcps`** — exactly an agent's, attached by id or defined
|
|
914
911
|
inline, and pinned by publish exactly as an agent's are: republishing a tool
|
|
915
912
|
does not change a published task until that task is published again.
|
|
913
|
+
- **`faqs`** — exactly an agent's.
|
|
916
914
|
- **`vars`** — the task's **inputs**, declared exactly as an agent's variables
|
|
917
915
|
are: a `name`, a `description`, an optional `default` and `required`. A run
|
|
918
916
|
supplies values by name; one it omits falls back to the `default`, and a
|
|
@@ -1048,14 +1046,42 @@ tell apart.
|
|
|
1048
1046
|
Task runs are **not** in the Observability charts, which are built on calls and
|
|
1049
1047
|
conversations. `list_task_runs` is where a task's own history lives.
|
|
1050
1048
|
|
|
1049
|
+
## FAQs
|
|
1050
|
+
|
|
1051
|
+
An FAQ is a named list of question/answer pairs the business wrote. Attached
|
|
1052
|
+
through `faqs`, its **questions** are added to the agent's prompt and the agent
|
|
1053
|
+
gets one generated tool, `get_faq_answers`, that returns the written **answers**
|
|
1054
|
+
for the questions it picks — so what the agent says is the business's own text.
|
|
1055
|
+
Do not create a tool with that name; it is reserved.
|
|
1056
|
+
|
|
1057
|
+
- **Use one for stable facts people ask often and the business wants answered
|
|
1058
|
+
exactly**: opening hours, refund policy, delivery areas, pricing. Behaviour,
|
|
1059
|
+
tone and what to do next belong in the prompt; anything that changes per
|
|
1060
|
+
caller or needs a live lookup belongs in a tool.
|
|
1061
|
+
- **Edits are live.** Changing a question or an answer reaches every agent using
|
|
1062
|
+
the FAQ from its next session, with no republish. Attaching or detaching an
|
|
1063
|
+
FAQ is a config change and does take a publish.
|
|
1064
|
+
- **Phrase each question the way a caller would ask it** — "Do you deliver on
|
|
1065
|
+
Sundays?", not "Sunday delivery policy". The model matches what was asked
|
|
1066
|
+
against the question text, so paraphrases need no extra entries.
|
|
1067
|
+
- **Keep answers short and speakable on a voice agent**: one or two sentences,
|
|
1068
|
+
no lists, links or markdown, since the agent will say it aloud.
|
|
1069
|
+
- **Add many at once with `create_faq_entries`** (up to 500 per FAQ, all or
|
|
1070
|
+
nothing), and fix one with `update_faq_entry` rather than recreating the FAQ.
|
|
1071
|
+
A question may appear only once per FAQ.
|
|
1072
|
+
- Do not also paste the answers into the prompt, and do not tell the agent to
|
|
1073
|
+
refuse what the FAQ lacks unless the user asks for that.
|
|
1074
|
+
|
|
1075
|
+
`delete_faq` is refused with 409 while an agent or task attaches it; detach it
|
|
1076
|
+
there first.
|
|
1077
|
+
|
|
1051
1078
|
## Integrations
|
|
1052
1079
|
|
|
1053
1080
|
Integrations are external services, and they come in two shapes.
|
|
1054
1081
|
|
|
1055
1082
|
**MCP integrations** give an agent tools from an external server. Attach them
|
|
1056
|
-
in the agent's own config, as `mcps` — the same place as `tools
|
|
1057
|
-
`
|
|
1058
|
-
like the rest of it. So attaching one **takes a publish** before a call sees it.
|
|
1083
|
+
in the agent's own config, as `mcps` — the same place as `tools`, written by
|
|
1084
|
+
`create_agent` or `update_agent`, and frozen at publish like the rest of it. So attaching one **takes a publish** before a call sees it.
|
|
1059
1085
|
`list_integration_mcp_tools` connects to the server and lists everything it
|
|
1060
1086
|
offers, which also proves the connection works.
|
|
1061
1087
|
|
|
@@ -1357,33 +1383,6 @@ Replies are answered by the agent on the sender's
|
|
|
1357
1383
|
`{{userdata.<column>}}` and the whole template, buttons included, as its own
|
|
1358
1384
|
first message — so write that agent's prompt against the CSV's column names.
|
|
1359
1385
|
|
|
1360
|
-
## Knowledge bases
|
|
1361
|
-
|
|
1362
|
-
A knowledge base gives an agent grounded answers over crawled content. Attach
|
|
1363
|
-
it through the agent's `kb_ids`. A call reads only `ready` ones, so one still
|
|
1364
|
-
building can be attached now and is used once it finishes.
|
|
1365
|
-
|
|
1366
|
-
Building one runs in three stages and takes minutes, not seconds:
|
|
1367
|
-
|
|
1368
|
-
1. `create_kb` with the site URLs starts the crawl. It returns immediately at
|
|
1369
|
-
`discovering` — poll `get_kb` until `status` is `review`.
|
|
1370
|
-
2. At `review`, `discovered` holds every URL the crawl found. Choose the ones
|
|
1371
|
-
worth indexing and pass them to `build_kb`. This choice decides the quality
|
|
1372
|
-
of the whole knowledge base: prefer pages that answer real questions over
|
|
1373
|
-
everything the crawl happened to reach.
|
|
1374
|
-
3. The KB moves through `transcribing` and `generating` to `ready`. Keep
|
|
1375
|
-
polling `get_kb`; `progress` says what stage it is in and `error` says if it
|
|
1376
|
-
stopped.
|
|
1377
|
-
|
|
1378
|
-
Once ready, `get_kb_prompt` is the table of contents exactly as the agent
|
|
1379
|
-
receives it — read it to judge what the agent will actually be able to find,
|
|
1380
|
-
since a vague entry is one it will never fetch. `list_pages` shows which URLs
|
|
1381
|
-
failed to transcribe, `patch_node` corrects an entry by hand, and
|
|
1382
|
-
`regenerate_toc` rebuilds the structure without crawling again.
|
|
1383
|
-
|
|
1384
|
-
Tell the user a build is running rather than waiting silently through it, and
|
|
1385
|
-
never poll a build in a tight loop.
|
|
1386
|
-
|
|
1387
1386
|
## Secrets, keys and webhooks
|
|
1388
1387
|
|
|
1389
1388
|
**Secrets** are workspace values referenced as `{{secrets.NAME}}` from tool
|
|
@@ -1496,8 +1495,8 @@ and the final `userdata` usually name the cause.
|
|
|
1496
1495
|
connected channel is a message they receive. Both are irreversible. Test
|
|
1497
1496
|
against a number or thread the user has named, never one you picked.
|
|
1498
1497
|
- **Delete only on an explicit request naming the target.** Agents, tools,
|
|
1499
|
-
|
|
1500
|
-
|
|
1498
|
+
carrier accounts, integrations, triggers, secrets, webhooks and tokens are
|
|
1499
|
+
all permanent. Taking a phone number out of service stops real
|
|
1501
1500
|
callers from reaching anyone — treat it the same way.
|
|
1502
1501
|
- **Never echo a secret back.** Personal access tokens, webhook signing secrets
|
|
1503
1502
|
and provider keys are shown once; repeating one puts it in the conversation
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ function required(name, hint) {
|
|
|
28
28
|
throw new Error(`${name} is not set — ${hint}`);
|
|
29
29
|
return value;
|
|
30
30
|
}
|
|
31
|
-
const BASE_URL = required("TALQING_BASE_URL", "set it to
|
|
31
|
+
const BASE_URL = required("TALQING_BASE_URL", "set it to the Talqing API URL, e.g. https://api.talqing.com").replace(/\/+$/, "");
|
|
32
32
|
const API_KEY = required("TALQING_API_KEY", "create a personal access token in the dashboard under Organization → API Tokens");
|
|
33
33
|
const { tools: functions } = JSON.parse(readPackageFile("tools.json"));
|
|
34
34
|
const byName = new Map(functions.map((fn) => [fn.name, fn]));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,oCAAoC,CAAC;AAc5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEzE,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,kFAAkF;AAClF,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,QAAQ,GAAG,QAAQ,CACvB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/tools.json
CHANGED
|
@@ -591,156 +591,114 @@
|
|
|
591
591
|
"role": "write"
|
|
592
592
|
},
|
|
593
593
|
{
|
|
594
|
-
"description": "List the workspace's
|
|
594
|
+
"description": "List the workspace's FAQs by name, with how many questions each holds.",
|
|
595
595
|
"method": "GET",
|
|
596
|
-
"name": "
|
|
596
|
+
"name": "list_faqs",
|
|
597
597
|
"parameters": {
|
|
598
598
|
"additionalProperties": true,
|
|
599
|
-
"description": "Arguments not inlined: call describe_function('
|
|
599
|
+
"description": "Arguments not inlined: call describe_function('list_faqs').",
|
|
600
600
|
"properties": {},
|
|
601
601
|
"type": "object"
|
|
602
602
|
},
|
|
603
|
-
"path": "/v1/
|
|
603
|
+
"path": "/v1/faqs",
|
|
604
604
|
"read_only": true,
|
|
605
605
|
"role": "read"
|
|
606
606
|
},
|
|
607
607
|
{
|
|
608
|
-
"description": "
|
|
608
|
+
"description": "Create an FAQ, optionally with its first question/answer entries.",
|
|
609
609
|
"method": "POST",
|
|
610
|
-
"name": "
|
|
610
|
+
"name": "create_faq",
|
|
611
611
|
"parameters": {
|
|
612
612
|
"additionalProperties": true,
|
|
613
|
-
"description": "Arguments not inlined: call describe_function('
|
|
613
|
+
"description": "Arguments not inlined: call describe_function('create_faq').",
|
|
614
614
|
"properties": {},
|
|
615
615
|
"type": "object"
|
|
616
616
|
},
|
|
617
|
-
"path": "/v1/
|
|
617
|
+
"path": "/v1/faqs",
|
|
618
618
|
"read_only": false,
|
|
619
619
|
"role": "write"
|
|
620
620
|
},
|
|
621
621
|
{
|
|
622
|
-
"description": "
|
|
622
|
+
"description": "Get one FAQ with every entry, in the order they were added.",
|
|
623
623
|
"method": "GET",
|
|
624
|
-
"name": "
|
|
624
|
+
"name": "get_faq",
|
|
625
625
|
"parameters": {
|
|
626
626
|
"additionalProperties": true,
|
|
627
|
-
"description": "Arguments not inlined: call describe_function('
|
|
627
|
+
"description": "Arguments not inlined: call describe_function('get_faq').",
|
|
628
628
|
"properties": {},
|
|
629
629
|
"type": "object"
|
|
630
630
|
},
|
|
631
|
-
"path": "/v1/
|
|
631
|
+
"path": "/v1/faqs/{faq_id}",
|
|
632
632
|
"read_only": true,
|
|
633
633
|
"role": "read"
|
|
634
634
|
},
|
|
635
635
|
{
|
|
636
|
-
"description": "
|
|
637
|
-
"method": "
|
|
638
|
-
"name": "
|
|
636
|
+
"description": "Rename an FAQ.",
|
|
637
|
+
"method": "PATCH",
|
|
638
|
+
"name": "update_faq",
|
|
639
639
|
"parameters": {
|
|
640
640
|
"additionalProperties": true,
|
|
641
|
-
"description": "Arguments not inlined: call describe_function('
|
|
641
|
+
"description": "Arguments not inlined: call describe_function('update_faq').",
|
|
642
642
|
"properties": {},
|
|
643
643
|
"type": "object"
|
|
644
644
|
},
|
|
645
|
-
"path": "/v1/
|
|
645
|
+
"path": "/v1/faqs/{faq_id}",
|
|
646
646
|
"read_only": false,
|
|
647
647
|
"role": "write"
|
|
648
648
|
},
|
|
649
649
|
{
|
|
650
|
-
"description": "
|
|
651
|
-
"method": "
|
|
652
|
-
"name": "
|
|
650
|
+
"description": "Delete an FAQ and its entries. Refused with 409 while an agent or task still attaches it.",
|
|
651
|
+
"method": "DELETE",
|
|
652
|
+
"name": "delete_faq",
|
|
653
653
|
"parameters": {
|
|
654
654
|
"additionalProperties": true,
|
|
655
|
-
"description": "Arguments not inlined: call describe_function('
|
|
655
|
+
"description": "Arguments not inlined: call describe_function('delete_faq').",
|
|
656
656
|
"properties": {},
|
|
657
657
|
"type": "object"
|
|
658
658
|
},
|
|
659
|
-
"path": "/v1/
|
|
659
|
+
"path": "/v1/faqs/{faq_id}",
|
|
660
660
|
"read_only": false,
|
|
661
661
|
"role": "write"
|
|
662
662
|
},
|
|
663
663
|
{
|
|
664
|
-
"description": "
|
|
665
|
-
"method": "
|
|
666
|
-
"name": "
|
|
667
|
-
"parameters": {
|
|
668
|
-
"additionalProperties": true,
|
|
669
|
-
"description": "Arguments not inlined: call describe_function('list_pages').",
|
|
670
|
-
"properties": {},
|
|
671
|
-
"type": "object"
|
|
672
|
-
},
|
|
673
|
-
"path": "/v1/knowledge/{kb_id}/pages",
|
|
674
|
-
"read_only": true,
|
|
675
|
-
"role": "read"
|
|
676
|
-
},
|
|
677
|
-
{
|
|
678
|
-
"description": "The table of contents exactly as an agent using this KB is given it.",
|
|
679
|
-
"method": "GET",
|
|
680
|
-
"name": "get_kb_prompt",
|
|
681
|
-
"parameters": {
|
|
682
|
-
"additionalProperties": true,
|
|
683
|
-
"description": "Arguments not inlined: call describe_function('get_kb_prompt').",
|
|
684
|
-
"properties": {},
|
|
685
|
-
"type": "object"
|
|
686
|
-
},
|
|
687
|
-
"path": "/v1/knowledge/{kb_id}/prompt",
|
|
688
|
-
"read_only": true,
|
|
689
|
-
"role": "read"
|
|
690
|
-
},
|
|
691
|
-
{
|
|
692
|
-
"description": "Read one entry of the table of contents, with its full content.",
|
|
693
|
-
"method": "GET",
|
|
694
|
-
"name": "get_node",
|
|
695
|
-
"parameters": {
|
|
696
|
-
"additionalProperties": true,
|
|
697
|
-
"description": "Arguments not inlined: call describe_function('get_node').",
|
|
698
|
-
"properties": {},
|
|
699
|
-
"type": "object"
|
|
700
|
-
},
|
|
701
|
-
"path": "/v1/knowledge/{kb_id}/nodes/{node_id}",
|
|
702
|
-
"read_only": true,
|
|
703
|
-
"role": "read"
|
|
704
|
-
},
|
|
705
|
-
{
|
|
706
|
-
"description": "Correct one entry's title, summary or content by hand \u2014 the way to fix a fact the crawl got wrong without rebuilding.",
|
|
707
|
-
"method": "PATCH",
|
|
708
|
-
"name": "patch_node",
|
|
664
|
+
"description": "Append question/answer entries to an FAQ, all or nothing. Live at once: agents using the FAQ read them from their next session.",
|
|
665
|
+
"method": "POST",
|
|
666
|
+
"name": "create_faq_entries",
|
|
709
667
|
"parameters": {
|
|
710
668
|
"additionalProperties": true,
|
|
711
|
-
"description": "Arguments not inlined: call describe_function('
|
|
669
|
+
"description": "Arguments not inlined: call describe_function('create_faq_entries').",
|
|
712
670
|
"properties": {},
|
|
713
671
|
"type": "object"
|
|
714
672
|
},
|
|
715
|
-
"path": "/v1/
|
|
673
|
+
"path": "/v1/faqs/{faq_id}/entries",
|
|
716
674
|
"read_only": false,
|
|
717
675
|
"role": "write"
|
|
718
676
|
},
|
|
719
677
|
{
|
|
720
|
-
"description": "
|
|
721
|
-
"method": "
|
|
722
|
-
"name": "
|
|
678
|
+
"description": "Change one entry's question, answer or both. Live from the next session.",
|
|
679
|
+
"method": "PATCH",
|
|
680
|
+
"name": "update_faq_entry",
|
|
723
681
|
"parameters": {
|
|
724
682
|
"additionalProperties": true,
|
|
725
|
-
"description": "Arguments not inlined: call describe_function('
|
|
683
|
+
"description": "Arguments not inlined: call describe_function('update_faq_entry').",
|
|
726
684
|
"properties": {},
|
|
727
685
|
"type": "object"
|
|
728
686
|
},
|
|
729
|
-
"path": "/v1/
|
|
687
|
+
"path": "/v1/faqs/{faq_id}/entries/{entry_id}",
|
|
730
688
|
"read_only": false,
|
|
731
689
|
"role": "write"
|
|
732
690
|
},
|
|
733
691
|
{
|
|
734
|
-
"description": "Delete
|
|
692
|
+
"description": "Delete one entry from an FAQ.",
|
|
735
693
|
"method": "DELETE",
|
|
736
|
-
"name": "
|
|
694
|
+
"name": "delete_faq_entry",
|
|
737
695
|
"parameters": {
|
|
738
696
|
"additionalProperties": true,
|
|
739
|
-
"description": "Arguments not inlined: call describe_function('
|
|
697
|
+
"description": "Arguments not inlined: call describe_function('delete_faq_entry').",
|
|
740
698
|
"properties": {},
|
|
741
699
|
"type": "object"
|
|
742
700
|
},
|
|
743
|
-
"path": "/v1/
|
|
701
|
+
"path": "/v1/faqs/{faq_id}/entries/{entry_id}",
|
|
744
702
|
"read_only": false,
|
|
745
703
|
"role": "write"
|
|
746
704
|
},
|
|
@@ -1122,6 +1080,20 @@
|
|
|
1122
1080
|
"read_only": false,
|
|
1123
1081
|
"role": "write"
|
|
1124
1082
|
},
|
|
1083
|
+
{
|
|
1084
|
+
"description": "Remove rows that were never dialled. Not reversible; a dialled row is refused in `rejected`.",
|
|
1085
|
+
"method": "POST",
|
|
1086
|
+
"name": "delete_call_batch_recipients",
|
|
1087
|
+
"parameters": {
|
|
1088
|
+
"additionalProperties": true,
|
|
1089
|
+
"description": "Arguments not inlined: call describe_function('delete_call_batch_recipients').",
|
|
1090
|
+
"properties": {},
|
|
1091
|
+
"type": "object"
|
|
1092
|
+
},
|
|
1093
|
+
"path": "/v1/calls/batches/{batch_id}/recipients/delete",
|
|
1094
|
+
"read_only": false,
|
|
1095
|
+
"role": "write"
|
|
1096
|
+
},
|
|
1125
1097
|
{
|
|
1126
1098
|
"description": "Stop placing new calls; calls in progress run to their end.",
|
|
1127
1099
|
"method": "POST",
|
|
@@ -1319,30 +1291,16 @@
|
|
|
1319
1291
|
"role": "write"
|
|
1320
1292
|
},
|
|
1321
1293
|
{
|
|
1322
|
-
"description": "
|
|
1323
|
-
"method": "POST",
|
|
1324
|
-
"name": "skip_email_batch_recipients",
|
|
1325
|
-
"parameters": {
|
|
1326
|
-
"additionalProperties": true,
|
|
1327
|
-
"description": "Arguments not inlined: call describe_function('skip_email_batch_recipients').",
|
|
1328
|
-
"properties": {},
|
|
1329
|
-
"type": "object"
|
|
1330
|
-
},
|
|
1331
|
-
"path": "/v1/email/batches/{batch_id}/skip",
|
|
1332
|
-
"read_only": false,
|
|
1333
|
-
"role": "write"
|
|
1334
|
-
},
|
|
1335
|
-
{
|
|
1336
|
-
"description": "Put skipped rows back. `selection: \"all_eligible\"` means every row a person skipped; an `unfillable` row is restored by filling in its cell instead.",
|
|
1294
|
+
"description": "Remove rows that were never sent. Not reversible; a sent row is refused in `rejected`.",
|
|
1337
1295
|
"method": "POST",
|
|
1338
|
-
"name": "
|
|
1296
|
+
"name": "delete_email_batch_recipients",
|
|
1339
1297
|
"parameters": {
|
|
1340
1298
|
"additionalProperties": true,
|
|
1341
|
-
"description": "Arguments not inlined: call describe_function('
|
|
1299
|
+
"description": "Arguments not inlined: call describe_function('delete_email_batch_recipients').",
|
|
1342
1300
|
"properties": {},
|
|
1343
1301
|
"type": "object"
|
|
1344
1302
|
},
|
|
1345
|
-
"path": "/v1/email/batches/{batch_id}/
|
|
1303
|
+
"path": "/v1/email/batches/{batch_id}/recipients/delete",
|
|
1346
1304
|
"read_only": false,
|
|
1347
1305
|
"role": "write"
|
|
1348
1306
|
},
|
|
@@ -1599,30 +1557,16 @@
|
|
|
1599
1557
|
"role": "write"
|
|
1600
1558
|
},
|
|
1601
1559
|
{
|
|
1602
|
-
"description": "
|
|
1603
|
-
"method": "POST",
|
|
1604
|
-
"name": "skip_whatsapp_batch_recipients",
|
|
1605
|
-
"parameters": {
|
|
1606
|
-
"additionalProperties": true,
|
|
1607
|
-
"description": "Arguments not inlined: call describe_function('skip_whatsapp_batch_recipients').",
|
|
1608
|
-
"properties": {},
|
|
1609
|
-
"type": "object"
|
|
1610
|
-
},
|
|
1611
|
-
"path": "/v1/whatsapp/batches/{batch_id}/recipients/skip",
|
|
1612
|
-
"read_only": false,
|
|
1613
|
-
"role": "write"
|
|
1614
|
-
},
|
|
1615
|
-
{
|
|
1616
|
-
"description": "Put rows a person skipped back. A row skipped for its cells returns when they are fixed.",
|
|
1560
|
+
"description": "Remove rows that were never sent. Not reversible; a sent row is refused in `rejected`.",
|
|
1617
1561
|
"method": "POST",
|
|
1618
|
-
"name": "
|
|
1562
|
+
"name": "delete_whatsapp_batch_recipients",
|
|
1619
1563
|
"parameters": {
|
|
1620
1564
|
"additionalProperties": true,
|
|
1621
|
-
"description": "Arguments not inlined: call describe_function('
|
|
1565
|
+
"description": "Arguments not inlined: call describe_function('delete_whatsapp_batch_recipients').",
|
|
1622
1566
|
"properties": {},
|
|
1623
1567
|
"type": "object"
|
|
1624
1568
|
},
|
|
1625
|
-
"path": "/v1/whatsapp/batches/{batch_id}/recipients/
|
|
1569
|
+
"path": "/v1/whatsapp/batches/{batch_id}/recipients/delete",
|
|
1626
1570
|
"read_only": false,
|
|
1627
1571
|
"role": "write"
|
|
1628
1572
|
},
|