Switching from another tool
From Expandi
Expandi'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 Expandi: Switching from Expandi to Gelee.
What Expandi offers
Expandi's help center documents two ways to automate. Webhooks, set under LinkedIn Settings, Webhooks, send a POST to your URL on 25 events, from replies and accepted invites to email opens and "account has nothing scheduled". "Reversed webhooks" are per-campaign URLs that add a lead (by profile_link) or pause and resume one.
Its help center notes that leads sent by webhook cannot enter a campaign that uses Signals. We did not find a broader public REST API in Expandi's own documentation.
Their words, our words
| Expandi | Gelee | Notes |
|---|---|---|
| Campaign | Campaign | |
| LinkedIn account | Seat | |
| Contact / prospect | Lead | |
| Tags and interest status | Tags and inbox flags | interested, lost, referral, follow-up. |
| Reversed webhook URL | Intake URL, or POST /campaigns/{id}/leads | The intake URL also takes a pasted URL with no key. |
| Smart inbox | Inbox | With the AI SDR drafting or sending replies. |
| Blacklist | Blacklist |
API calls
Every Expandi 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.
| Expandi | Gelee | Notes |
|---|---|---|
Reversed webhook: add lead (profile_link) | POST /campaigns/{id}/leads, or the campaign's intake URL | The intake URL reads loose field names, so profile_link works as is. |
Reversed webhook: pause / resume lead | POST /prospects/{id}/pause, /resume | Or POST /inbox/stop with LinkedIn URLs. |
(not in Expandi's docs) | GET /prospects, /people, /inbox, /campaigns | Read everything back with the whole story per lead. |
(not in Expandi's docs) | POST /inbox/{chat_id}/messages, POST /conversations | Send from your own code. |
(not in Expandi's docs) | PATCH /prospects/{id} | Custom fields, tags, flags, outcomes. |
Webhooks
Gelee signs every delivery and retries failures. Setup and signature checks are in Webhooks.
| Expandi | Gelee webhook | Notes |
|---|---|---|
| Contact replied, Contact replied to campaign message | reply_received | Plus reply_positive / reply_negative. |
| Contact replied first time since start | reply_received | Check timeline.first_reply_at. |
| Connection request accepted (by contact in active campaign) | connection_accepted | |
| Connection request sent | invite_sent | Pick by name. |
| Message sent | message_sent | Pick by name. |
| Contact revoked | invite_withdrawn | |
| Contact tagged, Contact interest status changed | lead_updated | Fires for changes made through the API or the assistant. |
| Contact added to campaign | lead_accepted (API pushes) | Fires once the verdict on a pushed lead lands. |
| Campaign finished | campaign_completed | |
| LinkedIn account has nothing / no messages / no invites scheduled | GET /health | Planned versus sent, with the reasons for any gap. |
| Visit, follow, like, endorsement sent; email events | No webhook |
Message variables
| Expandi | Gelee |
|---|---|
First name | {{firstName}} |
Company name | {{company}} |
Job title | {{role}} |
A custom placeholder | {{custom.field_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"]}]}'