Instantly

Scale cold email outreach with Instantly.ai. Manage email accounts, build targeted lead lists, create multi-step sequences with condition-based branching, and monitor campaign performance with detailed analytics.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Instantly API access yourself.
Setup in 3 Steps
| Step 1: Install | Step 2: Pair Account | Step 3: Connect Instantly |
|:---:|:---:|:---:|
|
|
| App-specific connection GIF coming soon |
How It Works
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Instantly API │
│ (User Chat) │ │ (OAuth) │ │ (v2.1) │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect Instantly│ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ Instantly│
│ File │ │ Auth │ │ Campaigns│
└──────────┘ └──────────┘ └──────────┘
Install
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.
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 Instantly again."
Quick Start
# List all email accounts
clawlink_call_tool --tool "instantly_list_accounts" --params '{}'
# List campaigns
clawlink_call_tool --tool "instantly_list_campaigns" --params '{}'
# Get campaign analytics
clawlink_call_tool --tool "instantly_campaigns_analytics_overview_get" --params '{"campaign_ids": ["CAMPAIGN_ID"]}'
Authentication
All Instantly tool calls are authenticated automatically by ClawLink using the user's connected Instantly account.
No API key is required in chat. ClawLink stores the OAuth token securely and injects it into every Instantly API request on the user's behalf.
Getting Connected
- Install the ClawLink plugin (see Install above).
- Pair the plugin with
clawlink_begin_pairingif it is not configured yet. - Open https://claw-link.dev/dashboard?add=instantly and connect Instantly (requires an active Instantly account).
- Call
clawlink_list_integrationsto verify the connection is active.
Connection Management
List Connections
clawlink_list_integrations
Response: Returns all connected integrations. Look for instantly in the list.
Verify Connection
clawlink_list_tools --integration instantly
Response: Returns the live tool catalog for Instantly.
Reconnect
If Instantly tools are missing or the connection shows an error:
- Direct the user to https://claw-link.dev/dashboard?add=instantly
- After they confirm, call
clawlink_list_integrationsto verify - Then call
clawlink_list_tools --integration instantly
Security & Permissions
- Access is scoped to the connected Instantly workspace only.
- All write operations require explicit user confirmation. Before executing any campaign, lead, or sequence action, confirm the target resource and intended effect with the user.
- Destructive actions (delete campaign, delete lead, delete webhook) are marked as high-impact and must be confirmed.
- Email sending is rate-limited by Instantly per account limits and your workspace plan.
- Lead enrichment and data jobs may incur additional costs based on your Instantly plan.
Tool Reference
Email Accounts & Warmup
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_accounts | List all email accounts in the workspace with warmup status | Read |
| instantly_get_account_campaign_mappings | Get campaigns mapped to a specific email account | Read |
| instantly_get_accounts_warmup_analytics | Retrieve warmup statistics and health scores per account | Read |
| instantly_get_accounts_analytics_daily | Get daily email sent counts per account | Read |
| instantly_enable_account_warmup | Enable warm-up for one or more email accounts | Write |
| instantly_disable_account_warmup | Disable warm-up for specific or all accounts | Write |
| instantly_accounts_ctd_status_get | Check Custom Tracking Domain SSL and CNAME status | Read |
| instantly_test_accounts_vitals | Test IMAP/SMTP connectivity and account health | Read |
Campaigns
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_campaigns | List all campaigns with optional filters and pagination | Read |
| instantly_get_campaign | Get full campaign configuration by ID | Read |
| instantly_get_campaign_sending_status | Get diagnostics on why a campaign may not be sending | Read |
| instantly_get_campaign_analytics | Get performance metrics for one or multiple campaigns | Read |
| instantly_get_daily_campaign_analytics | Get per-day performance metrics for a campaign | Read |
| instantly_get_campaign_steps_analytics | Get analytics broken down by sequence steps and variants | Read |
| instantly_campaigns_analytics_overview_get | Get overview metrics (leads, emails, replies, opens, clicks) | Read |
| instantly_create_campaign | Create a new campaign with configured settings | Write |
| instantly_update_campaign | Update campaign settings after verifying ID | Write |
| instantly_duplicate_campaign | Duplicate an existing campaign with same configuration | Write |
| instantly_activate_campaign | Activate or resume a paused campaign | Write |
| instantly_pause_campaign | Pause an active campaign sending operations | Write |
| instantly_delete_campaign | Permanently delete a campaign by ID | Write |
| instantly_share_campaign | Share a campaign template for 7 days | Write |
| instantly_export_campaign | Export campaign data to JSON format | Read |
| instantly_campaigns_from_export_post | Import a campaign from previously exported configuration | Write |
| instantly_count_launched_campaigns | Get total count of launched campaigns in workspace | Read |
| instantly_search_campaigns_by_lead_email | Find campaigns containing a specific lead | Read |
Sequences & Subsequences
| Tool | Description | Mode |
|------|-------------|------|
| instantly_get_subsequence | Get full details of a follow-up sequence | Read |
| instantly_get_campaign_sequences | Get all sequences for a campaign with steps and conditions | Read |
| instantly_create_subsequence | Create an automated follow-up sequence for a campaign | Write |
| instantly_duplicate_subsequence | Duplicate an existing subsequence to another campaign | Write |
| instantly_update_subsequence | Update an existing subsequence's steps | Write |
| instantly_delete_subsequence | Permanently delete a subsequence by UUID | Write |
| instantly_pause_subsequence | Pause an active campaign subsequence | Write |
| instantly_resume_subsequence | Resume a previously paused subsequence | Write |
| instantly_remove_lead_from_subsequence | Stop a lead from receiving subsequence emails | Write |
Leads & Lead Lists
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_leads | List leads with optional search, status filters, and pagination | Read |
| instantly_list_lead_lists | List all lead lists with optional filtering | Read |
| instantly_get_lead | Get full lead details by UUID | Read |
| instantly_get_lead_list | Get lead list metadata by UUID | Read |
| instantly_create_lead | Add an individual lead to a campaign | Write |
| instantly_create_lead_list | Create a new lead list for organizing contacts | Write |
| instantly_add_leads_bulk | Bulk import leads to a campaign or list with duplicate handling | Write |
| instantly_move_leads | Transfer specific leads between campaigns | Write |
| instantly_bulk_assign_leads | Bulk assign leads to organization team members | Write |
| instantly_merge_leads | Merge multiple leads into a single lead | Write |
| instantly_delete_lead | Permanently delete a lead by ID | Write |
| instantly_delete_lead_list | Permanently delete a lead list by ID | Write |
Lead Enrichment & Discovery
| Tool | Description | Mode |
|------|-------------|------|
| instantly_count_leads_from_supersearch | Preview how many leads match supersearch criteria | Read |
| instantly_create_supersearch_enrichment | Create enrichment job for a list or campaign | Write |
| instantly_get_supersearch_enrichment | Get enrichment configuration and status | Read |
| instantly_patch_supersearch_enrichment_settings | Update auto-update and skip settings for enrichment | Write |
| instantly_supersearch_enrichment_run_post | Trigger enrichment for a list or campaign | Write |
| instantly_create_ai_enrichment | Create AI-driven enrichment job for a list or campaign | Write |
Block List & Suppression
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_block_list_entries | List blocked emails or domains with optional filtering | Read |
| instantly_get_block_list_entry | Get details of a specific block list entry by ID | Read |
| instantly_create_block_list_entry | Add a blocked email or domain to the blocklist | Write |
| instantly_update_block_list_entry | Modify the value of a block list entry | Write |
| instantly_delete_block_list_entry | Remove a block list entry by ID | Write |
Tags & Labels
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_custom_tags | List all custom tags with optional pagination | Read |
| instantly_get_custom_tag | Get details of a specific custom tag by ID | Read |
| instantly_get_custom_tag_mappings | Get tag mappings connecting tags to resources | Read |
| instantly_create_custom_tag | Create a new custom tag for organizing resources | Write |
| instantly_update_tag | Update a tag's name by ID | Write |
| instantly_delete_custom_tag | Permanently delete a custom tag by ID | Write |
| instantly_toggle_resource | Assign or unassign custom tags to resources | Write |
Analytics & Reporting
| Tool | Description | Mode |
|------|-------------|------|
| instantly_get_audit_logs | Retrieve audit log records for account activity | Read |
| instantly_get_current_workspace | Get workspace info, plan details, and organization settings | Read |
| instantly_get_workspace_billing_plan_details | Get billing plan info for various services | Read |
Email Management
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_emails | List emails with optional filters and pagination | Read |
| instantly_count_unread_emails | Get count of unread emails in inbox | Read |
| instantly_mark_thread_as_read | Mark emails in a specific thread as read | Write |
Webhooks
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_webhooks | List configured webhooks with optional filters | Read |
| instantly_get_webhook | Get webhook configuration by ID | Read |
| instantly_create_webhook | Create a new webhook endpoint for event notifications | Write |
| instantly_patch_webhook | Update webhook properties (name, event type, target URL) | Write |
| instantly_delete_webhook | Permanently delete a webhook by UUID | Write |
| instantly_list_webhook_events | List received webhook events with pagination | Read |
| instantly_get_webhook_event | Get details of a specific webhook event by ID | Read |
| instantly_get_webhook_event_types | Get all available webhook event types | Read |
| instantly_get_webhook_events_summary | Get aggregated webhook delivery metrics for a date range | Read |
| instantly_get_webhook_events_summary_by_date | Get webhook event summaries grouped by date | Read |
| instantly_test_webhook | Send a test payload to verify webhook is working | Read |
API Keys & Administration
| Tool | Description | Mode |
|------|-------------|------|
| instantly_api_keys_get | List all API keys with names, scopes, and timestamps | Read |
| instantly_create_api_key | Create a new API key with specified permissions | Write |
| instantly_delete_api_key | Delete a specific API key by ID | Write |
DFY Email Accounts
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_dfy_email_account_orders | List DFY email account orders with pagination | Read |
| instantly_get_dfy_email_account_order_accounts | Get accounts from DFY orders with optional passwords | Read |
| instantly_check_dfy_email_account_order_domains | Check domain availability for DFY orders | Read |
| instantly_get_similar_dfy_email_account_order_domains | Get available domain alternatives based on a given domain | Read |
| instantly_dfy_email_account_orders_domains_pre_warmed_up | Get pre-warmed domains ready for DFY orders | Read |
Inbox Placement Testing
| Tool | Description | Mode |
|------|-------------|------|
| instantly_list_inbox_placement_tests | List inbox placement tests with filtering and pagination | Read |
| instantly_get_inbox_placement_test | Get details for a specific inbox placement test | Read |
| instantly_get_email_service_provider_options | Get valid recipient_labels options for ESPs | Read |
| instantly_create_inbox_placement_test | Create an inbox placement test with email and recipients | Write |
| instantly_get_inbox_placement_analytics_stats_by_date | Get daily inbox/spam/category distribution analytics | Read |
| instantly_inbox_placement_analytics_deliverability_insights | Get detailed inbox vs spam percentage breakdowns | Read |
| instantly_inbox_placement_analytics_stats_by_test_id | Get aggregated inbox placement stats across multiple tests | Read |
| instantly_list_inbox_placement_blacklist_spam_assassin | Get spam and blacklist analytics from inbox placement tests | Read |
Custom Domain & Whitelabel
| Tool | Description | Mode |
|------|-------------|------|
| instantly_set_whitelabel_domain | Configure custom whitelabel agency domain for workspace | Write |
| instantly_delete_whitelabel_domain | Remove whitelabel domain configuration from workspace | Write |
Lead Labels
| Tool | Description | Mode |
|------|-------------|------|
| instantly_lead_labels_post | Create a custom lead label for categorizing leads | Write |
| instantly_get_lead_label | Get details of a specific lead label by ID | Read |
| instantly_patch_lead_label | Update an existing lead label's name or properties | Write |
| instantly_delete_lead_label | Permanently delete a lead label by ID | Write |
Code Examples
List campaigns and get analytics
clawlink_call_tool --tool "instantly_list_campaigns" \
--params '{}'
Get campaign analytics overview
clawlink_call_tool --tool "instantly_campaigns_analytics_overview_get" \
--params '{"campaign_ids": ["CAMPAIGN_ID_1", "CAMPAIGN_ID_2"]}'
Add leads in bulk to a campaign
clawlink_call_tool --tool "instantly_add_leads_bulk" \
--params '{"campaign_id": "CAMPAIGN_ID", "lead_emails": ["lead1@example.com", "lead2@example.com"]}'
Create a new campaign
clawlink_call_tool --tool "instantly_create_campaign" \
--params '{"name": "Q4 Outreach", "sender_email": "sender@example.com", "track_links": true}'
Pause a campaign
clawlink_call_tool --tool "instantly_pause_campaign" \
--params '{"campaign_id": "CAMPAIGN_ID"}'
Discovery Workflow
- Call
clawlink_list_integrationsto confirm Instantly is connected. - Call
clawlink_list_tools --integration instantlyto see the live catalog. - Treat the returned list as the source of truth. Do not guess or assume what tools exist.
- If the user describes a capability but the exact tool is unclear, call
clawlink_search_toolswith a short query and integrationinstantly. - If no Instantly tools appear, direct the user to https://claw-link.dev/dashboard?add=instantly.
Execution Workflow
┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → search → describe → call │
│ │
│ Example: List campaigns → Get analytics → Show results │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ list → get → describe → preview → confirm → call │
│ │
│ Example: Preview campaign create → User approves → Execute│
└─────────────────────────────────────────────────────────────┘
- For unfamiliar tools, ambiguous requests, or any write action, call
clawlink_describe_toolfirst. - Use the returned guidance, schema,
whenToUse,askBefore,safeDefaults,examples, andfollowupsto shape the call. - Prefer read, list, search, and get operations before writes when that reduces ambiguity.
- For writes or anything marked as requiring confirmation, call
clawlink_preview_toolfirst. - Execute with
clawlink_call_tool. Pass confirmation only after the preview matches the user's intent. - If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.
Notes
- Campaign creation requires at least one email account, one lead, email sequences, and schedule configured before activation.
- Lead deduplication options are available when adding bulk leads (skip duplicates, upsert, etc.).
- Subsequence trigger conditions include CRM status changes, lead activity, and reply keywords.
- Custom tracking domains require SSL configuration and CNAME record setup before use.
- API keys can be scoped with granular permissions (e.g.,
campaigns:read,leads:create). - Inbox placement tests measure deliverability across email providers with inbox vs spam vs category breakdowns.
- Webhook events summary and date-based summaries provide aggregated delivery metrics.
Error Handling
| Status / Error | Meaning |
|----------------|---------|
| Tool not found | The tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration instantly. |
| Missing connection | Instantly is not connected. Direct the user to https://claw-link.dev/dashboard?add=instantly. |
| Permission error | The connected account lacks permission for this operation. Check account roles in Instantly. |
| Campaign not found | The campaign ID does not exist. Verify with instantly_list_campaigns. |
| Rate limit exceeded | API rate limit hit. Wait before retrying or reduce request frequency. |
| Write rejected | User did not confirm a write action. Always confirm before executing writes. |
Troubleshooting: Tools Not Visible
- Check that the ClawLink plugin is installed:
openclaw plugins list - If the plugin is installed but tools are missing, tell the user to send
/newas a standalone message to reload the catalog. - If a fresh chat does not help, run:
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json openclaw gateway restart - After restart, tell the user to send
/newagain and retry.
Troubleshooting: Campaign Not Sending
- Verify the campaign has at least one email account, one lead, and sequences configured.
- Check campaign sending status diagnostics:
clawlink_call_tool --tool "instantly_get_campaign_sending_status" --params '{"campaign_id": "YOUR_CAMPAIGN_ID"}' - Ensure email accounts are not paused and warmup is enabled.
- Check if daily sending limits have been reached for the account.
Resources
- Instantly API Documentation
- Instantly Warmup Guide
- ClawLink: https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=instantly-campaigns
- ClawLink Docs: https://docs.claw-link.dev/openclaw
- ClawLink Verification: https://claw-link.dev/verify
Related Skills
- Lemlist Outreach — For Lemlist email sequencing and CRM
- Mailchimp Marketing — For Mailchimp email campaigns and automation
- Kit Email Marketing — For Kit email broadcasts and sequences
Powered by ClawLink — an integration hub for OpenClaw

Scan to join WeChat group