Lobstercom for OpenClaw
Give your OpenClaw agent a real phone number. Receive SMS, MMS, and voice calls directly in your OpenClaw conversations.
Introduction
Give your OpenClaw agent a real phone number. Receive SMS, MMS, and voice calls directly in your OpenClaw conversations.
Lobstercom acts as a phone carrier for AI agents. This guide walks you through connecting your OpenClaw instance to Lobstercom so your agent can communicate with the real world over SMS and MMS.
Prerequisites
Before you begin, make sure you have the following:
- A Lobstercom accountCreate account
- An active phone number on Lobstercom-- Provision one from the dashboard
- An API key for your phone number-- Generated in your number's API Key tab
- A running OpenClaw instanceGitHub
Quick Setup
Get your Lobstercom API key
- Log in to the Lobstercom dashboard
- Navigate to your phone number and open the API Key tab
- Click "Generate API Key" and copy it immediately
Install the Lobstercom channel
Copy the agent-phone extension into your OpenClaw extensions/ directory:
# From the OpenClaw root directory
cp -r path/to/agent-phone extensions/agent-phoneConfigure in OpenClaw
Add the Lobstercom channel to your OpenClaw configuration file (.openclaw/config.yaml or equivalent):
channels:
agentPhone:
accounts:
default:
apiKey: "ap_your_api_key_here"
phoneNumberId: "your-phone-number-uuid"
agentPhoneUrl: "https://lobstercom.ai"Replace ap_your_api_key_here with your actual API key and your-phone-number-uuid with the UUID from your dashboard.
How It Works
Here is the full message lifecycle when someone texts your Lobstercom number:
Someone texts your number
Lobstercom receives the message
Forwarded to OpenClaw webhook
OpenClaw processes with AI
Reply sent via Lobstercom API
Person receives SMS reply
Message Format
When an inbound message arrives, Lobstercom formats it and forwards it to your OpenClaw instance. Here is the payload your agent receives:
{
"event": "message.inbound",
"channel": "sms",
"from": "+15551234567",
"to": "+15559876543",
"body": "Hello agent",
"media": [],
"timestamp": "2026-02-24T12:00:00Z",
"message_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}| Field | Type | Description |
|---|---|---|
event | string | Event type. Currently "message.inbound". |
channel | string | "sms" for text messages. |
from | string | E.164 phone number of the sender. |
to | string | Your Lobstercom number that received the message. |
body | string | The text content of the message. |
media | string[] | Array of media URLs for MMS attachments. Empty for plain SMS. |
timestamp | string | ISO 8601 timestamp of when the message was received. |
message_id | string | Unique identifier for this message. |
Features
Send and receive text messages through your agent
Support for images, videos, and other media attachments
HMAC-SHA256 signatures on every inbound webhook
3 automatic retry attempts with exponential backoff
Per-number message volume and cost tracking
Allow/block lists to control who can message your agent
Real-time voice conversations with your AI agent
Configuration Reference
Full list of configuration options for the Lobstercom channel in your OpenClaw config:
| Option | Required | Default | Description |
|---|---|---|---|
apiKey | Yes | -- | Your Lobstercom API key (starts with ap_) |
phoneNumberId | Yes | -- | UUID of your phone number |
agentPhoneUrl | No | https://lobstercom.ai | Lobstercom instance URL |
enabled | No | true | Enable/disable the channel |
name | No | "default" | Account display name |
allowFrom | No | [] | Phone numbers allowed to message (empty = allow all) |
dmPolicy | No | "open" | "open" or "pairing" -- controls who can initiate conversations |
API Endpoints
These are the Lobstercom API endpoints used by the OpenClaw channel integration:
/api/numbers/:id/connectConfigure webhook URL for inbound message forwarding. Called during initial setup./api/numbers/:id/connect/statusCheck connection health and webhook delivery status./api/numbers/:id/send/smsSend outbound SMS/MMS messages from your phone number./api/twilio/sms/:numberIdReceives inbound messages from carrier (internal -- not called by your agent).Troubleshooting
Common issues and their solutions:
Your API key may have been revoked or mistyped. Go to your phone number's API Key tab in the dashboard and generate a new one.
Ensure your OpenClaw instance is publicly accessible from the internet. Lobstercom needs to reach your webhook URL to deliver messages.
Check that your contact rules are not blocking the sender. Also verify the phone number is active and your subscription is current.
Verify that the agentPhoneUrl in your config is correct. The default is https://lobstercom.ai.
Your OpenClaw agent must respond within the webhook timeout (default 10s). For longer processing, return {"action":"ignore"} and reply asynchronously via the send API.