get-some-leads
/install instantly-campaign-builder
Instantly Campaign Builder
Build and manage Instantly.ai cold email campaigns via API v2.
Auth
All requests require:
Authorization: Bearer {INSTANTLY_API_KEY}
Content-Type: application/json
Base URL: https://api.instantly.ai
Workflow — Follow this order
Step 1: Create the campaign
POST /api/v2/campaigns
Required fields:
name— campaign nameemail_list— array of sender email addressessequences— message steps (see Step 2)
Optional but recommended:
daily_limit— max emails per daydaily_max_leads— max new leads contacted per dayemail_gap— seconds between sendsopen_tracking,link_tracking— booleanstop_on_reply,stop_on_auto_reply,stop_for_company— booleantext_only,first_email_text_only— booleancampaign_schedule— object withstart_date,end_date,schedules(times/days/timezone)
Step 2: Configure sequences (messages)
The sequences field is an array but only the first element is used. Put all steps in one item.
Each step has:
type: always"email"delay: number (wait before this step)delay_unit:"minutes","hours", or"days"variants: array of message variants (A/B testing)
Each variant has:
subject: email subject linebody: email body (HTML or plain text)v_disabled: boolean (settrueto disable a variant)
Variable syntax in subject and body: {{variableName}}
Core variables: {{firstName}}, {{lastName}}, {{companyName}}, {{email}}, {{phone}}, {{website}}
Custom variables: any name, e.g. {{city}}, {{offer}}, {{icebreaker}}
Example 3-step ARA sequence:
{
"sequences": [
{
"steps": [
{
"type": "email",
"delay": 0,
"delay_unit": "days",
"variants": [
{
"subject": "{{firstName}}, {{offer}}",
"body": "Bonjour {{firstName}},\
\
{{icebreaker}}\
\
Nous proposons {{offer}} pour les entreprises à {{city}}.\
\
Cordialement"
}
]
},
{
"type": "email",
"delay": 3,
"delay_unit": "days",
"variants": [
{
"subject": "Re: {{firstName}}, suite à mon message",
"body": "{{firstName}},\
\
Je me permets de relancer..."
}
]
},
{
"type": "email",
"delay": 5,
"delay_unit": "days",
"variants": [
{
"subject": "Dernière relance {{firstName}}",
"body": "{{firstName}},\
\
Dernier message de ma part..."
}
]
}
]
}
]
}
Step 3: Declare campaign variables
POST /api/v2/campaigns/{campaign_id}/variables
{
"variables": ["firstName", "companyName", "city", "offer", "icebreaker"]
}
Declare every custom variable name used in your sequences here.
Step 4: Add leads
Single lead: POST /api/v2/leads
{
"email": "[email protected]",
"first_name": "Jean",
"last_name": "Dupont",
"company_name": "Acme SAS",
"campaign": "campaign-uuid",
"custom_variables": {
"city": "Paris",
"offer": "audit IA gratuit",
"icebreaker": "J'ai vu votre post LinkedIn sur la transformation digitale"
}
}
Bulk (max 1000 per request): POST /api/v2/leads/add
{
"campaign_id": "campaign-uuid",
"leads": [
{
"email": "[email protected]",
"first_name": "Jean",
"last_name": "Dupont",
"company_name": "Acme SAS",
"custom_variables": { "city": "Paris", "offer": "audit IA gratuit" }
},
{
"email": "[email protected]",
"first_name": "Marie",
"last_name": "Martin",
"company_name": "Beta Corp",
"custom_variables": { "city": "Lyon", "offer": "démo chatbot" }
}
]
}
Notes:
- Use
campaign_idORlist_id, not both - If
campaignis provided on single lead,emailis required - Deduplication flags:
skip_if_in_campaign,skip_if_in_workspace,skip_if_in_list
Step 5: Activate the campaign
POST /api/v2/campaigns/{campaign_id}/activate
Only activate after leads are added and sequences are configured.
Modifying an existing campaign
PATCH /api/v2/campaigns/{campaign_id}
Same sequences structure as creation. Use this to update messages after campaign is created.
A/B Testing
Add multiple variants per step:
{
"type": "email",
"delay": 0,
"delay_unit": "days",
"variants": [
{
"subject": "Version A — {{firstName}}",
"body": "Approche directe...",
"v_disabled": false
},
{
"subject": "Version B — {{firstName}}",
"body": "Approche soft...",
"v_disabled": false
}
]
}
Required API Scopes
- Leads:
leads:create,leads:all,all:create, orall:all - Campaigns:
campaigns:create,campaigns:all,all:create, orall:all - Campaign update:
campaigns:update,campaigns:all,all:update, orall:all
Checklist before activation
- Campaign created with sequences and variables in subject/body
- Variables declared via
/campaigns/{id}/variables - Leads added with matching
custom_variables - Sender emails configured and warmed up
- Schedule set if needed
- Campaign activated via
/campaigns/{id}/activate
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install instantly-campaign-builder - After installation, invoke the skill by name or use
/instantly-campaign-builder - Provide required inputs per the skill's parameter spec and get structured output
What is get-some-leads?
Create and manage Instantly.ai email campaigns via API. Use when the user wants to create a cold email campaign, add leads to Instantly, configure email sequ... It is an AI Agent Skill for Claude Code / OpenClaw, with 156 downloads so far.
How do I install get-some-leads?
Run "/install instantly-campaign-builder" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is get-some-leads free?
Yes, get-some-leads is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does get-some-leads support?
get-some-leads is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created get-some-leads?
It is built and maintained by Polzer1999 (@polzer1999); the current version is v1.0.0.