---
name: Instantly Automation
description: "Automate Instantly cold email outreach -- manage campaigns, sending accounts, lead lists, bulk lead imports, and campaign analytics -- using natural language through the Composio MCP integration."
category: email-outreach
requires:
  mcp:
    - rube
---

# Instantly Automation

Automate your cold email outreach with Instantly -- create and manage campaigns with multi-step sequences, configure sending schedules, import leads in bulk, manage sending accounts, and track campaign performance -- all through natural language commands.

**Toolkit docs:** [composio.dev/toolkits/instantly](https://composio.dev/toolkits/instantly)

---

## Setup

1. Add the Composio MCP server to your client configuration:
   ```
   https://rube.app/mcp
   ```
2. Connect your Instantly account when prompted (API key authentication).
3. Start issuing natural language commands to manage your outreach campaigns.

---

## Core Workflows

### 1. List Sending Accounts
Retrieve all email accounts configured in your Instantly workspace, with filtering by status and provider.

**Tool:** `INSTANTLY_LIST_ACCOUNTS`

**Example prompt:**
> "Show all active sending accounts in my Instantly workspace"

**Key parameters:**
- `status` -- Filter by status: `1` (Active), `2` (Paused), `-1` (Connection Error), `-2` (Soft Bounce Error), `-3` (Sending Error)
- `provider_code` -- Filter by provider: `1` (Custom IMAP/SMTP), `2` (Google), `3` (Microsoft), `4` (AWS)
- `search` -- Search by email substring or domain
- `limit` -- Max items (1-100)
- `starting_after` -- Pagination cursor from previous response
- `tag_ids` -- Comma-separated tag UUIDs

---

### 2. Create a Campaign
Launch a new outreach campaign with scheduling, email sequences, A/B testing variants, and sending configuration.

**Tool:** `INSTANTLY_CREATE_CAMPAIGN`

**Example prompt:**
> "Create an Instantly campaign called 'Q1 Outreach' that sends Monday-Friday 9am-5pm Central time with a 3-step email sequence"

**Key parameters:**
- `name` (required) -- Campaign name
- `campaign_schedule` (required) -- Schedule configuration:
  - `schedules` (required) -- Array of schedule objects, each with:
    - `name` -- Schedule name
    - `timing` -- `{from: "09:00", to: "17:00"}` (HH:mm format)
    - `days` -- Map of day index strings "0" (Sun) to "6" (Sat) to booleans
    - `timezone` -- Supported values include "America/Chicago", "America/Detroit", "America/Boise", "America/Anchorage"
  - `start_date` / `end_date` -- ISO 8601 dates
- `email_list` -- Array of sending account email addresses (must be pre-configured accounts; use `INSTANTLY_LIST_ACCOUNTS` to discover valid addresses)
- `sequences` -- Array (only first element used) containing:
  - `steps` -- Array of step objects with:
    - `type` -- Must be "email"
    - `delay` -- Days before NEXT email (integer, min 0)
    - `variants` -- Array of `{subject, body}` objects for A/B testing
- `daily_limit` -- Daily sending cap
- `email_gap` -- Minutes between emails
- `stop_on_reply` -- Stop campaign when lead replies (boolean)
- `stop_on_auto_reply` -- Stop on auto-replies (boolean)
- `open_tracking` / `link_tracking` -- Enable tracking (booleans)

**Timezone notes:**
- Verified working: "America/Chicago" (Central), "America/Detroit" (Eastern), "America/Boise" (Mountain)
- Auto-mapped: "America/New_York" maps to "America/Detroit", "America/Denver" maps to "America/Boise"
- NOT supported: "America/Los_Angeles", "US/Pacific" -- use "America/Anchorage" or "America/Dawson" as alternatives

---

### 3. Update Campaign Settings
Modify an existing campaign's schedule, sending limits, sequences, or tracking settings.

**Tool:** `INSTANTLY_UPDATE_CAMPAIGN`

**Example prompt:**
> "Update my Instantly campaign to increase the daily limit to 100 and enable open tracking"

**Key parameters:**
- `id` (required) -- Campaign UUID
- Any combination of: `name`, `campaign_schedule`, `email_list`, `sequences`, `daily_limit`, `email_gap`, `stop_on_reply`, `open_tracking`, `link_tracking`, etc.
- Set any parameter to `null` to unset it

---

### 4. Manage Lead Lists and Bulk Import
Create dedicated lead lists and import prospects in bulk for campaign targeting.

**Tools:** `INSTANTLY_CREATE_LEAD_LIST`, `INSTANTLY_ADD_LEADS_BULK`

**Example prompt:**
> "Create a lead list called 'Q1 Prospects' and add 50 leads to my Instantly campaign"

**Key parameters for creating lead lists:**
- List name and configuration

**Key parameters for bulk lead import:**
- Campaign or list ID to import into
- Array of lead objects with email and metadata
- Duplicate handling options
- Lead verification settings

---

### 5. Review Campaign Details
Retrieve full campaign configuration to verify settings, inspect sequences, or prepare for updates.

**Tool:** `INSTANTLY_GET_CAMPAIGN`

**Example prompt:**
> "Show me the full details of my Instantly campaign"

**Key parameters:**
- `id` (required) -- Campaign UUID

---

### 6. List All Campaigns
Enumerate all campaigns in your workspace with optional filters and pagination.

**Tool:** `INSTANTLY_LIST_CAMPAIGNS`

**Example prompt:**
> "List all my Instantly campaigns"

**Key parameters:**
- Optional filters and pagination parameters

---

## Known Pitfalls

- **Timezone support is limited**: The Instantly API accepts a restricted set of timezone strings. Pacific Time ("America/Los_Angeles") is NOT supported. Use "America/Anchorage" (UTC-9/UTC-8) or "America/Dawson" (UTC-7 year-round) as alternatives.
- **Invalid schedule payloads cause 400 errors**: A malformed `campaign_schedule` (missing `days`, `from`, `to`, or `schedules`) triggers HTTP 400. Repeated 400s indicate payload issues, not transient failures.
- **Sequences must be complete**: Each sequence step requires a valid `type` ("email"), `delay`, and at least one variant with both `subject` and `body`. Incomplete variants block campaign creation.
- **Only first sequence element is used**: The API only processes `sequences[0]`. Additional sequences are ignored.
- **email_list must reference existing accounts**: The `email_list` field requires email addresses of pre-configured sending accounts in your Instantly workspace, not arbitrary recipient addresses. Always use `INSTANTLY_LIST_ACCOUNTS` to discover valid sending addresses.
- **401 scope errors on campaign creation**: Campaign creation can fail with "Invalid scope. Required: campaigns:create". Update your API key permissions before retrying writes.
- **Read-back fields may differ**: Field names in `INSTANTLY_GET_CAMPAIGN` responses may differ from create payloads (e.g., `timing.from_` vs `timing.from`). Parse defensively.

---

## Quick Reference

| Action | Tool Slug | Required Params |
|---|---|---|
| List sending accounts | `INSTANTLY_LIST_ACCOUNTS` | None (optional filters) |
| Create campaign | `INSTANTLY_CREATE_CAMPAIGN` | `name`, `campaign_schedule` |
| Update campaign | `INSTANTLY_UPDATE_CAMPAIGN` | `id` |
| Get campaign details | `INSTANTLY_GET_CAMPAIGN` | `id` |
| List campaigns | `INSTANTLY_LIST_CAMPAIGNS` | None (optional filters) |
| Create lead list | `INSTANTLY_CREATE_LEAD_LIST` | List name |
| Bulk import leads | `INSTANTLY_ADD_LEADS_BULK` | Campaign/list ID, leads |

---

*Powered by [Composio](https://composio.dev)*