Cloodot

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:

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:

  1. Tool discovery — the AI agent reads the parameters and descriptions of available skills.
  2. Parameter extraction — it pulls relevant values from the conversation and maps them to skill parameters.
  3. Skill invocation — the platform runs the skill in an isolated sandbox with those parameters.
  4. Response processing — Cloodot validates and formats the output; errors are captured and returned.
  5. 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 handler function
  • 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

  • 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

Next steps

On this page