Install
openclaw skills install @sheksushant/cold-email-salesblinkRun cold email sequences on autopilot and manage full sales outreach campaigns via the SalesBlink API. Use this skill to build automated multi-step email campaigns (sequences), manage leads and email lists, create reusable templates with merge variables and spintax, connect sending accounts (Gmail, Outlook, SMTP), handle inbox replies, and track campaign analytics (opens, clicks, replies, sent). Also supports bulk contact imports, email deliverability testing (inbox placement / spam checks), sender warmup links, workspace/team management, and any HTTP request to the SalesBlink platform.
openclaw skills install @sheksushant/cold-email-salesblinkUse this skill when the user wants to:
run.salesblink.io/api/public/v1.0.0Before performing any high-risk action, pause and obtain explicit user confirmation. Document the confirmation in your reasoning.
paused: true first.paused: false or launchTimingMode: "now"), show the user:
stopWhenReplyRecieved)paused: true and let the user resume manually when ready./keys endpoints for explicit credential-administration requests.evergreen: false) unless the user explicitly requests continuous running.<id@domain.com>) or Microsoft Graph ID. Crucial: Always URL-encode this ID when using it as a path parameter (e.g. in /inbox/:messageId/thread). This is distinct from the internal UUID id.senders is a comma-separated string, not an array. It can mix sender IDs and folder IDs — the server auto-detects each.steps fully replace on PATCH. Send the complete desired array.verification, archive_invalid, archive_risky on lists can only be turned ON, never OFF.paused is omitted on create, it defaults to true.launchTimingMode: "now" starts in 5 minutes, not instantly.attachment (not attachments). Max 3 per template.remove_attachments array of file names.from_email, not email.https://run.salesblink.io/api/public/v1.0.0
Ask the user for their SALESBLINK_API_KEY: https://run.salesblink.io/account/integration/api
Pass it in every request as the Authorization header (no "Bearer" prefix):
Header: Authorization: key-****
| Method | Limit | Window |
|---|---|---|
| GET | 30 | per minute |
| POST / PATCH | 15 | per minute |
| PUT (archive) | 10 | per minute |
On 429 Too Many Requests: wait at least 60 seconds before retrying. For batch operations, insert a 4-second delay between requests.
POST /signup
Create a new SalesBlink account. This is a public endpoint and does not require an API key. Successful signup returns an API key, allowing you to proceed with authenticated requests immediately.
Request Body:
{
"email": "user@example.com",
"password": "SecurePassword123",
"name": "John Doe"
}
Response Body:
{
"success": true,
"data": {
"account_id": "...",
"user_id": "...",
"api_key": "key-..."
}
}
Constraints:
password: Min 8 characters, max 48 characters, at least one uppercase and one lowercase letter.Most list endpoints use limit (max 100) and skip. Activity endpoints (/sent, /opens, /clicks, /replies) use per_page (max 100) and page (1-indexed).
Always paginate. Never assume a single request returns all data.
Read the relevant reference file before performing operations in that domain:
Lists & contacts/leads → references/lists.md and references/contacts.md
Email templates → references/templates.md
Sequences & email campaigns → references/sequences.md
Senders, OAuth & warmup links → references/senders.md
Inbox & replies → references/inbox.md
Activity tracking → references/activity.md
Users & workspaces → references/organization.md
Folders → references/folders.md
Domains & signatures → references/account-config.md
DFY domains & mailboxes → references/dfy.md
/domains/search to find available domains, then place an order with Google Workspace, Outlook, or Azure mailboxes. Supports buying new domains or connecting existing ones.Billing & payment methods → references/billing.md
API Key Management → references/api-keys.md
Reports → references/reports.md
Inbox placement tests → references/inbox-placement.md
End-to-end workflow examples → references/workflows.md
Always check the success boolean in the response body. A 200 status can still return { success: false, message: "..." }.
| Status | Meaning | Action |
|---|---|---|
| 200 | Success | Check success field |
| 400 | Bad request | Re-check payload structure against the reference file |
| 401 | Unauthorized | Verify API key |
| 403 | Forbidden | Insufficient permissions (role too low) |
| 404 | Not found | Verify the ID / endpoint |
| 409 | Conflict | Resource already exists or connection failed |
| 429 | Rate limited | Wait 60s, then retry |
| 500 | Server error | Retry once after 10s |