Documentation
Everything you need
Deploy AI agents on WhatsApp Business. Configure agents, connect tools, and monitor conversations.
Documentation Sections
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:
- Meta's WhatsApp API receives the message and sends it to Ricky via webhook
- Ricky identifies which agent handles that phone number
- The agent receives the message along with conversation history and available tools
- The agent reasons about what the customer needs and formulates a response
- If needed, the agent uses tools (checking inventory, booking appointments, etc.)
- 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?
Quick Start
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.
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.
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.
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
| Metric | Description |
|---|---|
| Active Agents | Number of agents currently enabled and responding to messages |
| Total Conversations | All conversations across all agents, including closed ones |
| Messages This Month | Total messages sent by your agents in the current billing period |
| Tools | Number 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
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.
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.
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.
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 keepAssigning Tools to Agents
Tools extend what your agent can do. To assign tools:
- Open the agent's detail page by clicking on it in the Agents list
- Scroll down to the "Assigned Tools" section
- Click "Manage Tools" to see available tools
- 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.
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
| Status | Meaning |
|---|---|
| Active | The agent is responding to messages normally |
| Paused | The agent is paused; a human operator is handling this conversation |
| Closed | The 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:
| Tool | Description |
|---|---|
| send_image | Send an image to the customer (product photos, receipts, etc.) |
| send_location | Send a location pin with coordinates (store address, meeting point) |
| send_document | Send a PDF or document file (invoices, contracts, guides) |
| web_search | Search the web for current information |
| handoff_to_human | Transfer 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)
Navigate to Tools
Go to the Tools section in the admin portal and click "Create Tool."
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.
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.
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
| Method | Header Format |
|---|---|
| Bearer Token | Authorization: Bearer your-token |
| API Key | X-API-Key: your-key |
| Basic Auth | Authorization: Basic base64(user:pass) |
| None | No 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
Start the Connection
Go to Settings → WhatsApp and click "Connect WhatsApp Business." This opens Meta's Embedded Signup flow in a popup window.
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.
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).
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.
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:
| Rating | Meaning |
|---|---|
| Green | High quality. No issues. |
| Yellow | Medium quality. Some customers marked messages as spam. |
| Red | Low 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:
| Type | Description |
|---|---|
| text | Plain text message |
| image | Image with optional caption |
| document | PDF or file attachment |
| location | Map pin with coordinates |
| interactive | Buttons or list selections |
Context Object
The context object included in webhook requests:
| Field | Type | Description |
|---|---|---|
| conversation_id | string | Unique identifier for this conversation |
| customer_phone | string | Customer WhatsApp number (E.164 format) |
| agent_id | string | ID 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.