Salesflow alternative
The Salesflow alternative that books the call
Keep what works. Add live signals, lists that refill themselves and replies drafted for you.
Why teams switch
Why people leave Salesflow.
Replies drafted for you
The AI SDR drafts every reply and sends your booking link.
Live signals
Gelee reaches out when someone is hiring, raised or changed jobs.
Lists that refill themselves
New people who match get added every day.
What you get
Everything, on every plan.
How to switch
8 steps. We do them with you.
Export your Salesflow leads
Export each campaign's leads with LinkedIn URLs, names, companies and status.
Bring your do-not-contact list over first
Do this first. Before a single lead goes in. Collect your exclusions and anyone already contacted.
Then send it over in one call, or add it in the app's Settings. People and whole companies both work, and sending the same list twice won't break anything. Gelee checks it when someone joins a campaign and again right before every message.
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"} ]}'Connect your LinkedIn seats
Whoever sends the outreach connects their LinkedIn in the Gelee app, under Accounts. It takes a minute.
One rule matters more than the rest: don't let Salesflow and Gelee both run campaigns from the same seat at the same time. Neither tool knows what the other sent, and LinkedIn sees both. Pause that seat's Salesflow campaigns first, then switch it on in Gelee.
Brand new or rested account? Turn on warm-up and it starts slow.
Swap your message variables
Paste your Salesflow messages into Gelee steps and swap the variables. If a variable comes back empty, Gelee drops that sentence instead of sending a blank, so you don't need a fallback on every one.
Anything of your own, like a report link or a finding, becomes a custom field:
{{custom.field_name}}. If a step needs a field that isn't there yet, it waits for it (up to a day). Handy if you write the link onto the lead when they accept.- first name →
{{firstName}} - company →
{{company}} - job title →
{{role}}
- first name →
Rebuild the campaign
Rebuild each campaign's invite and message steps with their waits.
Add your leads
Make the campaign, then add people however's easiest: upload the CSV, push them with the API, or point Zapier or Clay at the campaign's intake URL. All Gelee needs is the LinkedIn URL.
Leave out anyone Salesflow already reached, unless you actually want a second touch. Gelee won't put the same person in two of your campaigns anyway.
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"]}]}'Repoint your integrations
Replace the Salesflow webhooks that feed your CRM with Gelee webhook destinations. If you use HubSpot, check Gelee's HubSpot integration in the app.
In Gelee, add a webhook under Settings, Event Destinations (or
POST /webhooks). Every event comes with the person, the seat that sent and the campaign. Hit Test to get a full sample before anything real flows.Leave the Salesflow one running until you cut over, so your CRM doesn't have a gap.
Run both for a bit, then cut over
Don't move everything on day one. Start with a seat or two, run them next to Salesflow for a few weeks, and look at accepts, replies and booked calls. Split by seat, never by person.
Happy? Pause the rest of Salesflow, export one last time, move the remaining seats. Keep that last export. It's your record of who was contacted before.
Let AI do it
Let our AI move it.
The Gelee MCP already knows Salesflow. Connect it to Claude or ChatGPT and ask it to move you over. It checks with you before anything sends.
Set up the MCPQuestions
Good to know.
Can I run Salesflow and Gelee at the same time?
Yes. Just don't run both on the same LinkedIn seat at once, and don't let them message the same people. Split by seat and you're fine.
Will I lose my Salesflow conversation history?
No. The conversations live on LinkedIn, so they show up in Gelee once the seat connects. What doesn't come over is the other tool's own notes, tags and stats. Export those before you cancel.
Do I need the API to switch?
No. You can do all of this in the app. The API is there if you'd rather your own systems do it.
How long does a switch take?
Setup is about a day. The part that takes time is watching both side by side for a few weeks before you move everything.
For developers: API calls, webhooks and variables
Salesflow describes a native two-way HubSpot sync, and webhooks for other CRMs that send events such as an accepted connection, a reply and a withdrawn invite. We did not find a public REST API reference in Salesflow's own materials.
Their words, our words
| Salesflow | Gelee | Notes |
|---|---|---|
| Campaign | Campaign | |
| LinkedIn account | Seat | |
| Lead | Lead | |
| CRM webhook | Webhook destination |
API calls
| Salesflow | Gelee | Notes |
|---|---|---|
Webhook: connection accepted | Webhook: connection_accepted | |
Webhook: reply (positive or negative) | Webhooks: reply_positive, reply_negative | |
Webhook: invite withdrawn | Webhook: invite_withdrawn | |
(not in Salesflow's materials) | The Gelee REST API | Write outcomes, fields and tags back; push leads in. |
Webhooks
| Salesflow | Gelee webhook | Notes |
|---|---|---|
| Connection accepted | connection_accepted | |
| Reply | reply_received, reply_positive, reply_negative | |
| Invite withdrawn | invite_withdrawn |
Message variables
| 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}} |
Discovery call
Moving from Salesflow? We'll plan it with you.
A quick call. We learn about your market, and if it's a fit we'll move you over.
