Attach both platform tools and custom tools in the same assistant PATCH request. Here's an example combining a transferCall (Sulus-attached) tool with a processOrder (custom, dedicated-endpoint) tool:
curl -X PATCH https://api.sulus.ai/assistant/YOUR_ASSISTANT_ID \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": {
"provider": "custom-llm",
"model": "gpt-4o",
"url": "https://your-custom-llm-url/chat/completions",
"tools": [
{
"type": "transferCall",
"destinations": [
{
"type": "number",
"number": "+15551234567",
"numberE164CheckEnabled": false,
"message": "Transferring you to our customer service department."
}
]
},
{
"type": "function",
"async": false,
"function": {
"name": "processOrder",
"description": "Processes a customer order"
},
"server": {
"url": "https://your-custom-llm-url/chat/completions/custom-tool"
}
}
]
}
}'
| Tool Type | Execution Location | Use Case |
|---|
| Native LLM Tools | Inside your custom LLM server | Functions tightly coupled to your own LLM logic |
| Sulus-Attached Tools | Handled by the platform (e.g. transferCall) | Built-in platform actions like call transfers |
| Custom Tools | Dedicated external endpoint | Application-specific logic (e.g. order processing) |
For the base setup steps — registering credentials and creating the assistant with the custom-llm provider — see the Custom LLM (Bring Your Own Model Endpoint) page.