Connect to Twilio SendGrid to manage email marketing campaigns, transactional templates, contacts, suppression lists, sender identities, IP address pools, and event webhooks.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure SendGrid API access yourself.
Step 1: InstallStep 2: Pair AccountStep 3: Connect SendGrid
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect SendGrid
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ SendGrid API │
│ (User Chat) │ │ (Proxy) │ │ (Email, Marketing│
│ │ │ │ │ Campaigns) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect SendGrid │ │
│ │ 4. API Key Proxy │
│ │ 5. Request Forward │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ SendGrid│
│ File │ │ Auth │ │ Cloud │
└──────────┘ └──────────┘ └──────────┘
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 SendGrid again."
bash
# Check account verification status
clawlink_call_tool --tool "sendgrid_completed_steps"
# Create a new contact
clawlink_call_tool --tool "sendgrid_add_or_update_a_contact" --params '{"contacts": [{"email": "alice@example.com", "first_name": "Alice", "last_name": "Smith"}]}'
# Create a transactional template
clawlink_call_tool --tool "sendgrid_create_a_transactional_template" --params '{"name": "Welcome Email Template"}'
All SendGrid tool calls are authenticated automatically by ClawLink using your SendGrid API key stored securely in the dashboard.
No API key is required in chat. ClawLink injects your API key into every SendGrid API request on your 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 sendgrid in the list.
bash
clawlink_list_tools --integration sendgrid
Response: Returns the live tool catalog for SendGrid.
If SendGrid tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration sendgridToolDescriptionModesendgrid_completed_stepsRetrieve verification status of Domain Authentication and Single Sender VerificationRead
ToolDescriptionModesendgrid_add_or_update_a_contactAdd or update contacts asynchronously (matched by email, phone, external_id; returns job_id)Writesendgrid_create_a_listCreate a new contact list in Marketing CampaignsWritesendgrid_create_listCreate a new contact list (up to 1000 lists per account; names must be unique)Writesendgrid_create_a_segmentCreate a segment using SQL-like conditions for targeted campaignsWritesendgrid_create_segmentCreate a contact segment using Segmentation V2 APIWrite
ToolDescriptionModesendgrid_create_a_campaignCreate a marketing campaign with subject, sender, content, and list/segmentWritesendgrid_create_single_sendCreate a Single Send draft (uses email_config; scheduling requires separate endpoint)Writesendgrid_bulk_delete_single_sendsPermanently delete multiple Single Sends by ID (up to 1000 per request)Writesendgrid_cancel_or_pause_a_scheduled_sendCancel or pause scheduled email sends by batch_idWrite
ToolDescriptionModesendgrid_create_a_transactional_templateCreate a transactional email template (up to 300 per account)Writesendgrid_create_a_new_transactional_template_versionCreate a new version of a transactional templateWritesendgrid_activate_template_versionActivate a specific version as the default for a templateWrite
ToolDescriptionModesendgrid_create_a_senderCreate a sender identity for Marketing Campaigns (up to 100 unique senders)Writesendgrid_create_a_sender_identityCreate a new sender identity with from address and identity detailsWritesendgrid_create_verified_sender_requestCreate a sender identity via POST and send a verification emailWrite
ToolDescriptionModesendgrid_add_suppressions_to_a_suppression_groupAdd email addresses to an unsubscribe groupWritesendgrid_add_to_global_suppressions_groupAdd email addresses to the global suppression group (idempotent)Writesendgrid_delete_a_bounceRemove an email from the bounce suppression listWritesendgrid_delete_a_global_suppressionRemove an email from suppressions to allow future deliveryWrite
ToolDescriptionModesendgrid_add_a_twilio_send_grid_ip_addressProvision a new dedicated IP address (Pro/Premier plans only; additional cost)Writesendgrid_add_ipsAdd dedicated IP addresses to the accountWritesendgrid_create_an_ip_poolCreate a new IP pool to group dedicated IPsWritesendgrid_create_an_ip_pool_with_a_name_and_ip_assignmentsCreate an IP pool and assign IPs in a single atomic operationWritesendgrid_add_an_ip_address_to_a_poolAdd a dedicated IP address to an existing poolWritesendgrid_assign_a_batch_of_subusers_to_an_ipAssign multiple subusers to a specified IP addressWritesendgrid_delete_a_batch_of_ips_from_an_ip_poolRemove IPs from a pool (IPs remain in account, not deleted)Write
ToolDescriptionModesendgrid_authenticate_a_domainEnable domain authentication for users or subusersWritesendgrid_associate_an_authenticated_domain_with_a_given_userAssociate an authenticated domain with a subuserWritesendgrid_add_an_ip_to_an_authenticated_domainAdd an IP address to an authenticated domain for custom SPFWritesendgrid_bind_authenticated_domains_to_userAssociate additional authenticated domains with a subuser (up to 5)Write
ToolDescriptionModesendgrid_create_a_branded_linkCreate a new branded link for link trackingWritesendgrid_associate_a_branded_link_with_a_subuserAssociate a branded link with a subuser for link trackingWritesendgrid_delete_a_branded_linkPermanently delete a branded linkWrite
ToolDescriptionModesendgrid_create_a_new_alertCreate an alert (usage_limit or stats_notification type)Writesendgrid_create_a_new_event_webhookSet up an Event Webhook with URL, events, and OAuth/signature verificationWrite
ToolDescriptionModesendgrid_create_a_parse_settingCreate an Inbound Parse Webhook setting to receive and parse incoming emailsWritesendgrid_delete_a_parse_settingDelete a specific inbound parse webhook setting by hostnameWrite
ToolDescriptionModesendgrid_create_a_custom_fieldCreate a custom field for storing additional contact information (up to 120 per account)Writesendgrid_create_custom_field_definitionCreate a unique case-insensitive custom field definitionWrite
ToolDescriptionModesendgrid_create_designCreate a new email design in the SendGrid Design LibraryWrite
ToolDescriptionModesendgrid_create_integrationCreate a SendGrid Marketing Integration for forwarding events to SegmentWrite
ToolDescriptionModesendgrid_create_api_keysCreate a new SendGrid API key with specified permissions (up to 100 keys)Writesendgrid_add_one_or_more_ips_to_the_allow_listAdd IPv4 addresses to IP access management allow list (max 1000 total)Write
ToolDescriptionModesendgrid_create_an_sso_integrationCreate a SAML 2.0 SSO integration with an Identity ProviderWritesendgrid_create_an_sso_certificateCreate an SSO certificate for SAML 2.0 authenticationWritesendgrid_create_an_sso_teammateCreate an SSO Teammate (requires Enterprise account with SSO enabled)Writesendgrid_approve_access_requestApprove a teammate's access request (admin only)Write
ToolDescriptionModesendgrid_create_an_accountCreate a new customer account (reseller partners only)Writesendgrid_authenticate_an_account_with_single_sign_onGenerate a one-time SSO URL for a customer's Twilio SendGrid account (reseller partners only)Write
ToolDescriptionModesendgrid_create_subuserCreate a new subuser accountWrite
ToolDescriptionModesendgrid_create_a_batch_idGenerate a new mail batch ID to group multiple email sendsWrite
bash
clawlink_call_tool --tool "sendgrid_add_or_update_a_contact" \
--params '{
"contacts": [
{"email": "alice@example.com", "first_name": "Alice", "last_name": "Smith", "custom_fields": {"industry": "tech"}}
]
}'
bash
clawlink_call_tool --tool "sendgrid_create_a_new_transactional_template_version" \
--params '{
"template_id": "YOUR_TEMPLATE_ID",
"active": 1,
"name": "Version 2",
"html_content": "<html><body><h1>Welcome {{name}}!</h1></body></html>"
}'
bash
clawlink_call_tool --tool "sendgrid_create_a_new_suppression_group" \
--params '{
"name": "Newsletter Unsubscribes",
"description": "Recipients who opted out of newsletter emails"
}'
bash
clawlink_call_tool --tool "sendgrid_add_one_or_more_ips_to_the_allow_list" \
--params '{"ips": ["192.168.1.0/24", "10.0.0.1"]}'
bash
clawlink_call_tool --tool "sendgrid_create_a_new_event_webhook" \
--params '{
"url": "https://your-app.com/webhook/sendgrid",
"events": ["delivered", "open", "click", "bounce", "dropped"]
}'
clawlink_list_integrations to confirm SendGrid is connected.clawlink_list_tools --integration sendgrid to see the live catalog.clawlink_search_tools with a short query and integration sendgrid.text
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → describe → call │
│ │
│ Example: Check verification status → List contacts │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ describe → preview → confirm → call │
│ │
│ Example: Describe tool → Preview changes → User approves │
│ → Execute create │
└─────────────────────────────────────────────────────────────┘
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.create_an_account, authenticate_an_account_with_single_sign_on) return 403 for non-partner accounts.add_or_update_a_contact returns a job_id for tracking import status.Status / ErrorMeaningTool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration sendgrid.Missing connectionSendGrid is not connected. Direct the user to https://claw-link.dev/dashboard?add=sendgrid.403 ForbiddenThe API key lacks permissions for this operation, or the feature requires a higher plan (Pro/Premier/Enterprise).400 Bad RequestInvalid parameters — check the tool schema with clawlink_describe_tool.404 Not FoundThe referenced resource (campaign, template, IP) does not exist.429 Too Many RequestsRate limit exceeded — wait and retry with exponential backoff.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.
sendgrid.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.Powered by ClawLink — an integration hub for OpenClaw
