curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-tools/junctions/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"junctions": [
{
"botId": "2a1cf0f0-f35d-46ad-8e61-a15c86b2b312",
"toolId": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"action": "ADD",
"channels": [
"chat"
]
}
]
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/junctions/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'junctions': [
{
'botId': '2a1cf0f0-f35d-46ad-8e61-a15c86b2b312',
'toolId': '4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3',
'action': 'ADD',
'channels': [
'chat'
]
}
]
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-tools/junctions/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"junctions": [
{
"botId": "2a1cf0f0-f35d-46ad-8e61-a15c86b2b312",
"toolId": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"action": "ADD",
"channels": [
"chat"
]
}
]
},
)
data = response.json()
{
"actionIds": [
"4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3"
],
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"attached": true
}
Actions
Assign to agents
Add or remove agent assignments for actions.
POST
/
v2
/
hc-tools
/
junctions
/
public
curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-tools/junctions/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"junctions": [
{
"botId": "2a1cf0f0-f35d-46ad-8e61-a15c86b2b312",
"toolId": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"action": "ADD",
"channels": [
"chat"
]
}
]
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/junctions/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'junctions': [
{
'botId': '2a1cf0f0-f35d-46ad-8e61-a15c86b2b312',
'toolId': '4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3',
'action': 'ADD',
'channels': [
'chat'
]
}
]
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-tools/junctions/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"junctions": [
{
"botId": "2a1cf0f0-f35d-46ad-8e61-a15c86b2b312",
"toolId": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"action": "ADD",
"channels": [
"chat"
]
}
]
},
)
data = response.json()
{
"actionIds": [
"4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3"
],
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"attached": true
}
Adds or removes assignments between agents and actions. Send a batch of junction changes in one request.
Assigning an action to an agent does not make it run. An action executes only when a published Rulebook rule, assigned to that agent, invokes it through a Tool node. The backend stores action assignments but does not currently check them at runtime; assignments gate Attributes only.
Headers
string
required
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs write scope.string
required
application/jsonBody parameters
Junction[]
required
Array of junction changes to apply.
string
required
Agent ID.
string
required
Action ID.
string
required
ADD to create the assignment, DELETE to remove it.string[]
Optional channels the assignment applies to, for example
chat and email.Response
Returns{ "success": true } when the changes are applied.
curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-tools/junctions/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"junctions": [
{
"botId": "2a1cf0f0-f35d-46ad-8e61-a15c86b2b312",
"toolId": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"action": "ADD",
"channels": [
"chat"
]
}
]
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/junctions/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'junctions': [
{
'botId': '2a1cf0f0-f35d-46ad-8e61-a15c86b2b312',
'toolId': '4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3',
'action': 'ADD',
'channels': [
'chat'
]
}
]
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-tools/junctions/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"junctions": [
{
"botId": "2a1cf0f0-f35d-46ad-8e61-a15c86b2b312",
"toolId": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"action": "ADD",
"channels": [
"chat"
]
}
]
},
)
data = response.json()
{
"actionIds": [
"4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3"
],
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"attached": true
}
Errors
400 Bad Request
400 Bad Request
The body is malformed, or a junction is missing
botId, toolId, or a valid action.401 Unauthorized
401 Unauthorized
The API key is missing, malformed, revoked, or invalid.
403 Forbidden
403 Forbidden
The API key does not include the
write scope required for this route.Was this page helpful?

