Atomically create up to twenty custom agent actions
curl --request POST \
--url https://app.communicate.so/api/v1/workspaces/{workspaceId}/agents/{agentId}/actions/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"name": "<string>",
"description": "<string>",
"urlTemplate": "<string>",
"method": "GET",
"headers": {},
"paramSchema": {},
"bodyTemplate": {}
}
]
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
name: '<string>',
description: '<string>',
urlTemplate: '<string>',
method: 'GET',
headers: {},
paramSchema: {},
bodyTemplate: {}
}
])
};
fetch('https://app.communicate.so/api/v1/workspaces/{workspaceId}/agents/{agentId}/actions/batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.communicate.so/api/v1/workspaces/{workspaceId}/agents/{agentId}/actions/batch"
payload = [
{
"name": "<string>",
"description": "<string>",
"urlTemplate": "<string>",
"method": "GET",
"headers": {},
"paramSchema": {},
"bodyTemplate": {}
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)[
{
"id": "<string>",
"workspaceId": "<string>",
"agentId": "<string>",
"name": "<string>",
"description": "<string>",
"method": "GET",
"urlTemplate": "<string>",
"paramSchema": {},
"bodyTemplate": {},
"headersConfigured": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
]Agents
Atomically create up to twenty custom agent actions
Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.
POST
/
workspaces
/
{workspaceId}
/
agents
/
{agentId}
/
actions
/
batch
Atomically create up to twenty custom agent actions
curl --request POST \
--url https://app.communicate.so/api/v1/workspaces/{workspaceId}/agents/{agentId}/actions/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"name": "<string>",
"description": "<string>",
"urlTemplate": "<string>",
"method": "GET",
"headers": {},
"paramSchema": {},
"bodyTemplate": {}
}
]
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
name: '<string>',
description: '<string>',
urlTemplate: '<string>',
method: 'GET',
headers: {},
paramSchema: {},
bodyTemplate: {}
}
])
};
fetch('https://app.communicate.so/api/v1/workspaces/{workspaceId}/agents/{agentId}/actions/batch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.communicate.so/api/v1/workspaces/{workspaceId}/agents/{agentId}/actions/batch"
payload = [
{
"name": "<string>",
"description": "<string>",
"urlTemplate": "<string>",
"method": "GET",
"headers": {},
"paramSchema": {},
"bodyTemplate": {}
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)[
{
"id": "<string>",
"workspaceId": "<string>",
"agentId": "<string>",
"name": "<string>",
"description": "<string>",
"method": "GET",
"urlTemplate": "<string>",
"paramSchema": {},
"bodyTemplate": {},
"headersConfigured": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
]Authorizations
accountBeareraccountSessionlocalAccountSession
Opaque user-bound ca_ account credential. Each request checks live account scopes, verified email, expiry, revocation and the issuer session. Not a workspace ck_ key or OAuth access token.
Path Parameters
Minimum string length:
1Minimum string length:
1Body
application/json
Required array length:
1 - 20 elementsPattern:
^[a-zA-Z0-9_]{1,64}$Required string length:
1 - 1000Available options:
GET, POST, PUT, PATCH, DELETE Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Atomically create up to twenty custom agent actions
Minimum string length:
1Minimum string length:
1Minimum string length:
1Available options:
GET, POST, PUT, PATCH, DELETE Show child attributes
Show child attributes
Show child attributes
Show child attributes
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$