Manage Resend from chat — email campaigns, contacts, audiences, domains, templates, and transactional sends via the Resend API.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Resend API access yourself.
Step 1: InstallStep 2: Pair AccountStep 3: Connect Resend
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Resend
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Resend │
│ (User Chat) │ │ (OAuth) │ │ (Email API) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect Resend │ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ Resend │
│ File │ │ Auth │ │ Dashboard│
└──────────┘ └──────────┘ └──────────┘
Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
bash
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for Resend again."
bash
# List all contacts
clawlink_call_tool --tool "resend_list_all_contacts" --params '{"limit": 20}'
# List audiences
clawlink_call_tool --tool "resend_list_audiences" --params '{}'
# Send an email
clawlink_call_tool --tool "resend_send_email" --params '{"from": "team@example.com", "to": ["recipient@example.com"], "subject": "Hello", "html": "<p>Hello world</p>"}'
All Resend tool calls are authenticated automatically by ClawLink using the user's connected Resend account.
No API key is required in chat. ClawLink stores the credentials securely and injects them into every Resend API request on the user's behalf.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.bash
clawlink_list_integrations
Response: Returns all connected integrations. Look for resend in the list.
bash
clawlink_list_tools --integration resend
Response: Returns the live tool catalog for Resend.
If Resend tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration resendToolDescriptionModeresend_list_audiencesList all audiencesReadresend_retrieve_audienceGet audience detailsReadresend_create_audienceCreate a new audienceWriteresend_delete_audienceDelete an audienceWriteresend_list_all_contactsList all contactsReadresend_list_contactsList contacts in an audienceReadresend_get_contactGet contact detailsReadresend_create_contactCreate a contactWriteresend_create_contact_v2Create a contact (v2)Writeresend_update_contactUpdate contact detailsWriteresend_delete_contactDelete a contactWriteresend_delete_contact_by_idDelete contact by IDWriteresend_add_contact_to_segmentAdd contact to segmentWriteresend_remove_contact_from_segmentRemove contact from segmentWriteresend_list_contact_segmentsList segments for a contactReadresend_list_contact_topicsList topics for a contactRead
ToolDescriptionModeresend_list_segmentsList all segmentsReadresend_get_segmentGet segment detailsReadresend_create_topicCreate a topicWriteresend_list_topicsList all topicsReadresend_get_topicGet topic detailsReadresend_update_topicUpdate a topicWriteresend_delete_segmentDelete a segmentWriteresend_delete_topicDelete a topicWrite
ToolDescriptionModeresend_list_domainsList all domainsReadresend_retrieve_domainGet domain detailsReadresend_create_domainCreate and verify a domainWriteresend_verify_domainVerify domain DNS recordsWriteresend_update_domainUpdate domain settingsWriteresend_delete_domainDelete a domainWrite
ToolDescriptionModeresend_list_templatesList all templatesReadresend_get_templateGet template detailsReadresend_create_templateCreate a templateWriteresend_update_templateUpdate a templateWriteresend_delete_templateDelete a templateWriteresend_duplicate_templateDuplicate a templateWriteresend_publish_templatePublish a templateWrite
ToolDescriptionModeresend_list_emailsList sent emailsReadresend_retrieve_emailGet email detailsReadresend_send_emailSend a single emailWriteresend_send_batch_emailsSend up to 100 emailsWriteresend_cancel_emailCancel a scheduled emailWriteresend_update_emailUpdate a scheduled emailWriteresend_list_email_attachmentsList attachments on an emailReadresend_get_email_attachmentGet attachment detailsReadresend_list_received_emailsList received emailsRead
ToolDescriptionModeresend_list_webhooksList all webhooksReadresend_get_webhookGet webhook detailsReadresend_create_webhookCreate a webhookWriteresend_update_webhookUpdate a webhookWriteresend_delete_webhookDelete a webhookWrite
ToolDescriptionModeresend_list_broadcastsList all broadcastsReadresend_update_broadcastUpdate a broadcastWrite
ToolDescriptionModeresend_list_contact_propertiesList contact property definitionsReadresend_get_contact_propertyGet contact property detailsReadresend_create_contact_propertyCreate a contact propertyWriteresend_update_contact_propertyUpdate a contact propertyWriteresend_delete_contact_propertyDelete a contact propertyWrite
ToolDescriptionModeresend_list_api_keysList all API keysReadresend_create_api_keyCreate a new API keyWriteresend_delete_api_keyRevoke an API keyWrite
bash
clawlink_call_tool --tool "resend_list_all_contacts" \
--params '{
"limit": 20
}'
bash
clawlink_call_tool --tool "resend_create_audience" \
--params '{
"name": "Newsletter Subscribers"
}'
bash
clawlink_call_tool --tool "resend_send_email" \
--params '{
"from": "team@company.com",
"to": ["recipient@example.com"],
"subject": "Welcome to our newsletter",
"html": "<p>Hello! Thanks for subscribing.</p>"
}'
bash
clawlink_call_tool --tool "resend_create_contact" \
--params '{
"audience_id": "AUDIENCE_ID",
"email": "newcontact@example.com",
"first_name": "Jane",
"last_name": "Doe"
}'
clawlink_list_integrations to confirm Resend is connected.clawlink_list_tools --integration resend to see the live catalog.clawlink_search_tools with a short query and integration resend.text
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → retrieve → call │
│ │
│ Example: List contacts → Get details → Show results │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ list → describe → preview → confirm → call │
│ │
│ Example: Describe tool → Preview changes → User approves │
│ → Execute send │
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.to, cc, or bcc recipients — audience-based sending is not supported.Status / ErrorMeaningTool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration resend.Missing connectionResend is not connected. Direct the user to https://claw-link.dev/dashboard?add=resend.DOMAIN_NOT_VERIFIEDDomain DNS records have not propagated. Wait and retry verification.CONTACT_ALREADY_EXISTSThe contact email is already in the audience.Write rejectedUser did not confirm a write action. Always confirm before executing writes.
Check that the ClawLink plugin is installed: bash
openclaw plugins list
If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
If a fresh chat does not help, run: bash
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
After restart, tell the user to send /new again and retry.
resend.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.