Documentation

Everything you need

Deploy AI agents on WhatsApp Business. Configure agents, connect tools, and monitor conversations.

Getting Started

Ricky deploys AI agents on your WhatsApp Business account. These agents handle customer conversations autonomously—answering questions, checking information, booking appointments, and taking actions on your behalf.

Unlike traditional chatbots that follow rigid decision trees, Ricky's agents use large language models to understand context and reason about what customers need. They hold natural, multi-turn conversations and can access your business systems through custom tools.

How It Works

When a customer sends a message to your WhatsApp Business number, here's what happens:

  1. Meta's WhatsApp API receives the message and sends it to Ricky via webhook
  2. Ricky identifies which agent handles that phone number
  3. The agent receives the message along with conversation history and available tools
  4. The agent reasons about what the customer needs and formulates a response
  5. If needed, the agent uses tools (checking inventory, booking appointments, etc.)
  6. The response is sent back to the customer via WhatsApp

The entire process typically takes 2-5 seconds, depending on complexity.

Prerequisites

Before you can use Ricky, you'll need:

  • A WhatsApp Business Account (WABA) connected to Meta Business Manager
  • A verified Meta Business Manager account
  • A phone number that isn't already registered with WhatsApp

Don't have a WABA yet?

During onboarding, we'll guide you through Meta's Embedded Signup flow, which creates a WhatsApp Business Account for you. The process takes about 10 minutes.

Quick Start

1

Connect Your WhatsApp

In the admin portal, go to Settings → WhatsApp and click "Connect WhatsApp Business." This launches Meta's Embedded Signup flow where you'll log in with your Meta Business account and authorize Ricky to send messages on your behalf.

2

Create Your First Agent

Navigate to Agents and click "Create Agent." Give it a name and write a system prompt that defines its personality, knowledge, and behavior. This is where you teach the agent about your business.

3

Assign to a Phone Number

Go to Settings → WhatsApp, find your phone number, and assign your new agent to it. The agent is now live and will respond to incoming messages.

4

Test It Out

Send a message to your WhatsApp Business number from a personal phone. You should receive a response from your agent within seconds. Monitor the conversation in the Conversations section of the portal.

Need help getting started?

Contact us at ricardo@getricky.ai and we'll help you set everything up.

Dashboard

The dashboard gives you a quick overview of your organization's activity. It's the first thing you see when you log in.

Metrics

MetricDescription
Active AgentsNumber of agents currently enabled and responding to messages
Total ConversationsAll conversations across all agents, including closed ones
Messages This MonthTotal messages sent by your agents in the current billing period
ToolsNumber of custom tools configured for your organization

Recent Conversations

The dashboard shows your five most recent conversations. Each entry displays the customer's phone number, which agent handled it, the conversation status, and when it was last active. Click any conversation to view the full message history.

Onboarding Checklist

If you haven't completed setup, the dashboard shows a checklist with your remaining steps: connecting WhatsApp, creating an agent, and sending your first message. Each item links to the relevant section of the portal.

Agents

An agent is an AI-powered assistant assigned to handle conversations on a WhatsApp Business number. Each agent has its own configuration, personality, and set of available tools.

Creating an Agent

1

Open the Create Dialog

Navigate to the Agents section and click "Create Agent" in the top right. A dialog will open asking for the agent's details.

2

Enter Basic Information

Give your agent a descriptive name (e.g., "Customer Support" or "Sales Assistant"). The name is for your reference and won't be shown to customers. Add an optional description to help your team understand the agent's purpose.

3

Write the System Prompt

The system prompt is the most important part. This is where you define who the agent is, what it knows, and how it should behave. You can refine this later, so don't worry about getting it perfect on the first try.

4

Select a Model

Choose which language model powers the agent. GPT-5 Mini offers a good balance of capability and cost for most use cases.

Writing Effective System Prompts

A good system prompt clearly defines four things: identity, knowledge, behavior, and constraints.

  • Identity: Who the agent is. Give it a name and role. "You are Ana, a customer service agent for TechStore."
  • Knowledge: What the agent knows about your business—products, services, policies, pricing, locations, hours.
  • Behavior: How to handle common scenarios, when to escalate, tone of voice, language preferences.
  • Constraints: What the agent should never do or say. What topics to avoid. When to refuse a request.

Here's an example:

You are Ana, a friendly customer service agent for TechStore,
an electronics retailer in Panama City.

Your responsibilities:
- Answer questions about products, pricing, and availability
- Help customers track their orders using the order_lookup tool
- Schedule store visits using the booking tool
- Handle complaints professionally and offer solutions

Guidelines:
- Be warm and helpful, use casual but professional Spanish
- If you don't know something, say so honestly
- For refunds or complex issues, collect details and escalate
- Never share customer data or make promises you can't keep

Assigning Tools to Agents

Tools extend what your agent can do. To assign tools:

  1. Open the agent's detail page by clicking on it in the Agents list
  2. Scroll down to the "Assigned Tools" section
  3. Click "Manage Tools" to see available tools
  4. Toggle on the tools you want this agent to have access to

The agent will automatically know how to use any assigned tools based on their descriptions. You don't need to explain tool usage in the system prompt.

Activating and Pausing Agents

Agents can be active or inactive. An inactive agent won't respond to any messages—they'll queue until the agent is reactivated.

To toggle an agent's status, click the toggle switch next to its name in the Agents list, or use the "Active" toggle on the agent's detail page.

Viewing Agent Conversations

From an agent's detail page, click "View Conversations" to see all conversations handled by that specific agent. You can filter by status (active, closed) and search by customer phone number.

Deleting Agents

To delete an agent, open its detail page and click the delete button. You'll be asked to confirm. Deleting an agent does not delete its conversation history—that data is retained for your records.

If the agent is assigned to a phone number, you must unassign it first. Go to Settings → WhatsApp and assign a different agent (or none) to that number.

Conversations

The Conversations section (also called Inbox) shows all customer conversations across all your agents. This is where you monitor activity, review interactions, and take over when needed.

Conversation List

The left panel shows all conversations, sorted by most recent activity. Each entry displays:

  • Customer phone number (last 4 digits visible, full number on hover)
  • Which agent is handling the conversation
  • Status indicator (active, paused, or closed)
  • Time of last message

Conversation Statuses

StatusMeaning
ActiveThe agent is responding to messages normally
PausedThe agent is paused; a human operator is handling this conversation
ClosedThe conversation has ended (customer inactive for 24+ hours)

Viewing Message History

Click any conversation to view the full message history. Messages are displayed chronologically with timestamps. Customer messages appear on the left, agent responses on the right. Tool calls (like checking inventory) are shown inline so you can see exactly what the agent did and why.

Human Takeover

Sometimes the agent needs to hand off to a human. This happens when:

  • The agent calls the handoff_to_human tool
  • A human operator manually pauses the conversation

When a conversation is paused, you can send messages directly to the customer. Type your message in the input field and click Send. Your messages are marked as coming from "Operator" so you can distinguish them from agent messages later.

To resume agent handling, click "Resume Agent" in the conversation header. The agent will pick up where it left off, with full context of the human intervention.

Tools

Tools extend what your agent can do beyond conversation. They let the agent take actions and access information from external systems—checking inventory, booking appointments, looking up orders, or any other operation your backend supports.

Platform Tools

These built-in tools are available to all agents:

ToolDescription
send_imageSend an image to the customer (product photos, receipts, etc.)
send_locationSend a location pin with coordinates (store address, meeting point)
send_documentSend a PDF or document file (invoices, contracts, guides)
web_searchSearch the web for current information
handoff_to_humanTransfer conversation to a human operator

Creating Custom Tools

Custom tools connect your agent to your business systems. There are two types:

  • Webhook tools: Call your API endpoint when the agent needs information or wants to take an action
  • Data query tools: Query a database or data source you've connected (coming soon)
1

Navigate to Tools

Go to the Tools section in the admin portal and click "Create Tool."

2

Define the Tool

Enter a name (lowercase, underscores, e.g., check_inventory). Write a clear description—this is what the agent reads to decide when to use the tool.

3

Set the Endpoint

Enter the URL of your API endpoint. Select the authentication method (Bearer token, API key, or none) and enter credentials if needed.

4

Define Parameters

Specify what information the agent should provide when calling the tool. Use JSON Schema format to define parameter names, types, and descriptions.

Parameter Schema Format

Parameters are defined using JSON Schema. Here's an example for an inventory check tool:

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "description": "The SKU or product ID to check"
    },
    "location": {
      "type": "string",
      "description": "Store location (e.g., 'panama-city', 'colon')"
    }
  },
  "required": ["product_id"]
}

The description field is important—it helps the agent understand what each parameter means and how to fill it in based on the conversation.

Testing Tools

Before assigning a tool to agents, test it. On the tool's detail page, click "Test Tool." Enter sample parameter values and click "Execute." You'll see the raw request sent to your endpoint and the response received. This helps debug issues before they affect live conversations.

Assigning Tools to Agents

Tools are organization-wide by default. To make a tool available to an agent, go to the agent's detail page, scroll to "Assigned Tools," and toggle on the tools you want. An agent can only use tools that are explicitly assigned to it.

Webhooks

This section is a technical reference for developers building webhook endpoints that Ricky calls.

Request Format

When an agent invokes a webhook tool, Ricky sends a POST request to your endpoint:

POST https://your-api.com/inventory
Content-Type: application/json
Authorization: Bearer your-api-key

{
  "tool_name": "check_inventory",
  "arguments": {
    "product_id": "SKU-12345",
    "location": "panama-city"
  },
  "context": {
    "conversation_id": "conv_abc123",
    "customer_phone": "+507XXXXXXXX",
    "agent_id": "agent_xyz789"
  }
}

The context object provides information about the conversation, which you can use for logging or to customize responses based on the customer.

Response Format

Return a JSON response. The agent will use this information to formulate its reply to the customer:

{
  "success": true,
  "data": {
    "product": "iPhone 15 Pro 256GB",
    "available": true,
    "quantity": 12,
    "price": 1199.00,
    "location": "Panama City - Multiplaza"
  }
}

Keep responses concise. The agent needs facts, not prose. Include relevant data in a structured format.

Error Handling

If something goes wrong, return an error response:

{
  "success": false,
  "error": "Product not found"
}

The agent will see this error and can explain to the customer that the information isn't available or suggest alternatives.

Authentication Options

MethodHeader Format
Bearer TokenAuthorization: Bearer your-token
API KeyX-API-Key: your-key
Basic AuthAuthorization: Basic base64(user:pass)
NoneNo authentication header sent

Credentials are stored securely and encrypted at rest. They're never exposed in logs or to agents.

Timeouts and Retries

Webhook requests time out after 30 seconds. If your endpoint doesn't respond, the tool call fails and the agent proceeds without that information. We don't retry failed requests automatically—the agent may attempt the tool call again based on conversation flow.

WhatsApp Setup

Connecting your WhatsApp Business account to Ricky enables agents to send and receive messages on your behalf.

Prerequisites

Before connecting WhatsApp, ensure you have:

  • A Meta Business Manager account (verified preferred, but not required)
  • A phone number that isn't currently registered with WhatsApp (personal or Business)
  • Access to receive SMS or calls on that phone number for verification

Connecting Your WhatsApp

1

Start the Connection

Go to Settings → WhatsApp and click "Connect WhatsApp Business." This opens Meta's Embedded Signup flow in a popup window.

2

Log in to Meta

Sign in with the Facebook account that has admin access to your Meta Business Manager. If you don't have a Business Manager, you can create one during this flow.

3

Create or Select a WABA

You can create a new WhatsApp Business Account or use an existing one. If creating new, enter your business details (name, category, description).

4

Add Your Phone Number

Enter the phone number you want to use. You'll receive a verification code via SMS or voice call. Enter the code to confirm ownership.

5

Grant Permissions

Authorize Ricky to send and receive messages on your behalf. Review the permissions and click "Confirm."

After Connection

Once connected, your phone number appears in Settings → WhatsApp. You can:

  • Assign an agent to handle messages for that number
  • View the phone number's quality rating and status
  • See message statistics for that number

Quality Rating

Meta assigns quality ratings to phone numbers based on customer feedback and message patterns. Ratings are:

RatingMeaning
GreenHigh quality. No issues.
YellowMedium quality. Some customers marked messages as spam.
RedLow quality. Risk of messaging limits or restrictions.

To maintain a good rating, ensure your agents are helpful and relevant, avoid spammy behavior, and honor customer opt-out requests.

Business Verification

Meta may require you to verify your business identity to increase messaging limits. This involves submitting documentation in Meta Business Manager. We can guide you through this process if needed.

Settings

The Settings section contains configuration options for your organization and account.

Organization Settings

View and update your organization name and basic information. If you manage multiple organizations, you can switch between them using the organization selector in the header.

WhatsApp Connections

Manage your connected WhatsApp Business Accounts and phone numbers. Assign agents to phone numbers, view quality ratings, and disconnect numbers if needed.

Account Security

Update your email and password. We recommend using a strong, unique password and enabling two-factor authentication when available.

Billing

View your current plan, message usage, and billing history. Upgrade or change plans as your needs grow. See the Pricing page for plan details.

API Reference

Technical reference for developers integrating with Ricky.

Webhook Payload (Incoming)

When your webhook tool is invoked, the request body contains:

{
  "tool_name": "check_inventory",
  "arguments": {
    "product_id": "SKU-12345",
    "location": "panama-city"
  },
  "context": {
    "conversation_id": "conv_abc123",
    "customer_phone": "+507XXXXXXXX",
    "agent_id": "agent_xyz789"
  }
}

Message Types

Agents can send different types of messages to customers:

TypeDescription
textPlain text message
imageImage with optional caption
documentPDF or file attachment
locationMap pin with coordinates
interactiveButtons or list selections

Context Object

The context object included in webhook requests:

FieldTypeDescription
conversation_idstringUnique identifier for this conversation
customer_phonestringCustomer WhatsApp number (E.164 format)
agent_idstringID of the agent handling this conversation

REST API Coming Soon

A full REST API for programmatic access is in development. Contact us for early access if you need API integration.

FAQ & Troubleshooting

General Questions

What counts as a message?

A message is any response sent by your agent. Incoming messages from customers don't count toward your limit. Tool calls (like checking inventory) don't count either—only the final response to the customer.

What happens if I exceed my message limit?

Your agent keeps working. Additional messages are billed at the overage rate shown for your plan. There's no interruption to service.

Can I use multiple phone numbers?

Yes. The number of phone numbers depends on your plan. Each number can have a different agent assigned to it, or multiple numbers can share the same agent.

Troubleshooting

Agent not responding to messages

Check that (1) the agent is set to Active, (2) the agent is assigned to the phone number in Settings → WhatsApp, and (3) your WhatsApp connection is still valid (green status). If all looks correct, check the conversation in the Inbox—there may be an error in the message history.

Webhook tool returning errors

Use the "Test Tool" feature on the tool's detail page to debug. Common issues: incorrect URL, expired credentials, timeout (over 30 seconds), invalid response format. Check that your endpoint returns valid JSON with a success boolean.

Messages not being delivered

WhatsApp has a 24-hour messaging window. If a customer hasn't messaged in 24 hours, you can only send template messages (not free-form responses). Check your phone number's quality rating—a red rating may mean Meta has restricted your messaging.

Agent giving wrong information

Review and improve the system prompt. Be more specific about what the agent should and shouldn't say. Add explicit facts about your business. Consider adding tools so the agent can look up current information rather than relying on its training data.

Still need help?

Contact us at ricardo@getricky.ai. We typically respond within a few hours on business days.