Switching from another tool
From lemlist
lemlist's API calls, webhooks, terms and message variables, each mapped to its Gelee equivalent.
The plain-English guide covers what you gain, what you give up and when to stay on lemlist: Switching from lemlist to Gelee.
What lemlist offers
lemlist has a developer API and webhooks. Webhooks can subscribe to single activities (for example linkedinReplied) or lead-state groups (contacted, warmed, interested). lemlist is moving its unsubscribe endpoints to a v2 API; its help center says the old /unsubscribes routes stop working on November 1, 2026.
Their words, our words
| lemlist | Gelee | Notes |
|---|---|---|
| Campaign with LinkedIn steps | Campaign | Gelee campaigns are LinkedIn only. |
| Lead | Lead | |
| Custom variable | Custom field | {{custom.key}} |
| Unsubscribe | Blacklist | |
| Sender's LinkedIn | Seat |
API calls
Every lemlist call we found in its docs, and the Gelee call that does the same job. Gelee's base URL, keys and limits are in Keys and limits.
| lemlist | Gelee | Notes |
|---|---|---|
Add lead to campaign | POST /campaigns/{id}/leads | Custom variables become custom_fields. |
Unsubscribes | POST /blacklist, GET /blacklist | |
Webhooks (add, list, delete) | POST, GET, DELETE /webhooks | Signed, with a timestamp. |
Activities | GET /prospects/{id}/activity | Every invite, accept, message and reply with the seat and campaign. |
Webhooks
Gelee signs every delivery and retries failures. Setup and signature checks are in Webhooks.
| lemlist | Gelee webhook | Notes |
|---|---|---|
| linkedinReplied | reply_received | Plus reply_positive / reply_negative. |
| LinkedIn invite accepted | connection_accepted | |
| LinkedIn invite / message sent | invite_sent, message_sent | Pick by name. |
| interested (lead state) | reply_positive, lead_updated | |
| Email events | Stay in lemlist | Gelee does not send email. |
Message variables
| lemlist | Gelee |
|---|---|
{{firstName}} | {{firstName}} |
{{companyName}} | {{company}} |
A custom variable | {{custom.variable_name}} |
Every Gelee variable:
| Value | Gelee variable |
|---|---|
| First name | {{firstName}} |
| Full name | {{fullName}} |
| Company | {{company}} |
| Job title | {{role}} |
| Industry | {{industry}} |
| Your own per-lead field | {{custom.your_field}} |
| A fallback when empty | {{custom.your_field|default text}} |
| Sender's name | {{senderName}} |
Code from the guide
curl -X POST "https://www.gelee.ai/api/v1/blacklist" \
-H "Authorization: Bearer gk_your_key" \
-H "Content-Type: application/json" \
-d '{"entries":[
{"value":"https://www.linkedin.com/in/janedoe","type":"account"},
{"value":"Acme Corp","type":"company"}
]}'curl -X POST "https://www.gelee.ai/api/v1/campaigns/CAMPAIGN_ID/leads" \
-H "Authorization: Bearer gk_your_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: import-batch-1" \
-d '{"leads":[{"linkedin_url":"https://www.linkedin.com/in/janedoe",
"first_name":"Jane","company":"Acme","title":"VP Sales",
"custom_fields":{"report_link":"https://acme.example/r/5d70"},
"tags":["imported"]}]}'