Skills Overview
How the skill system and architecture work.
Skills are JavaScript functions that extend the AI agent's capabilities. Once deployed, the AI agent can call them as tools during conversations.
Based on the official Skills documentation: Skills Overview - Cloodot.
What skills do
Custom JavaScript or TypeScript functions let the AI agent:
- Fetch live data to answer with up-to-date information
- Run operations that change state in your systems
Skill kinds
Every skill is one of two kinds:
Search
Retrieve and return data for the AI to use in its answer.
Examples:
- Look up order status
- Check inventory
- Search an external catalog
Characteristics:
- Read-only lookups
- Return data for the AI to present
- No external state changes
Execute
Perform an operation, often with side effects.
Examples:
- Create a calendar event
- Send an email
- Update a CRM record
- Process an order
Characteristics:
- May change external systems
- Often require configuration/credentials
- Return a confirmation or result
Tool call flow
When a user requests something the AI agent can handle with a skill, this is what happens:
- Tool discovery — the AI agent reads the parameters and descriptions of available skills.
- Parameter extraction — it pulls relevant values from the conversation and maps them to skill parameters.
- Skill invocation — the platform runs the skill in an isolated sandbox with those parameters.
- Response processing — Cloodot validates and formats the output; errors are captured and returned.
- Context integration — the result flows back into the conversation and the AI agent replies to the customer.
When skills are called
Skills run in these cases:
- User request — the customer explicitly asks ("book a meeting", "check inventory")
- AI agent decision — the AI agent decides invoking a skill would resolve the conversation
- UI interaction — the customer taps a skill-driven button or carousel
- Future — scheduled or event-driven runs (planned)
Skill context
When a skill executes, its context is a flat object with details about the conversation and organization:
{
"organizationId": "org_12345",
"organizationName": "Acme Inc",
"organizationTimezone": "America/New_York",
"conversationId": "conv_12345",
"channelType": "WHATSAPP",
"channelName": "Acme Support",
"channelReference": "+15551234567",
"contactId": "contact_12345",
"contactName": "Jane Doe",
"contactEmail": "jane@example.com",
"contactPhone": "+15557654321",
"profileName": "Jane",
"lastMessage": "Where is my order?",
"toolCallId": "call_12345"
}Use context to personalize responses. Fields populate when available — some may be empty depending on the channel.
Skill definition fields
A skill definition includes:
- slug — unique identifier (alphanumeric + underscores)
- name — display name
- description — what the skill does
- prompt — how to describe it to the AI agent
- definition — JavaScript or TypeScript code with a
handlerfunction - parameters — input schema the AI agent passes in
- response — output schema returned to the AI agent
- buttons — optional quick-action buttons
Handler function
All skills require a handler function:
async function handler(input) {
const { config, secrets, parameters, context } = input
// Your skill logic here
return {
message: "Response to AI",
// ... other fields
}
}Input structure
{
config: Record<string, any> // Non-sensitive configuration values
secrets: Record<string, any> // Config fields marked sensitive (API keys, tokens)
parameters: Record<string, any> // Input from AI tool call
context: {
conversationId?: string
organizationId?: string
// ... see "Skill context" above
}
}Sensitive values arrive in secrets, not config. Any configuration field marked sensitive (for example an API key with isSensitive: true) is delivered in input.secrets — read credentials from secrets and ordinary settings from config.
Further reading
Build and deploy
- Creating Skills — build your first skill step by step
- Skill Schema — definition format and validation rules
- Skill Sets — group skills into reusable bundles
- AI Agent Configuration — wire custom skills into the AI agent
- MCP Servers — connect skills to external services via MCP
Related features
- Knowledge Base — ground skill responses in your knowledge base
- Custom Fields — use custom fields in skill parameters and responses
- Integrations — connect skills to external APIs and services