New You can now talk to your Gelee agent from Claude, ChatGPT or Cursor through our MCP. Read the docs →
Home Resources and free tools Blog Switch to Gelee Docs Pricing Book a Demo

Valley alternative

The Valley 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 Valley.

1

Autopilot when you're ready

Approve every reply, or let the AI SDR run once you trust it.

2

Live signals and evergreen lists

Gelee finds people the day something happens, and keeps the list full.

3

Set up for you

We build your ICP, signals and first campaigns with you.

What you get

Everything, on every plan.

Live buying signalsLists that refill themselvesEvery lead enrichedOnly your ICP, everBest people firstMore ways to find peopleBest accounts on best prospectsEvery account, tunedSmart warm-upFree InMailsReplies drafted for youUpdates in SlackSet up for youAPI, webhooks and MCP

Side by side

Gelee vs Valley.

FeatureGeleeValley
Finding buyers
Live buying signals (hiring, funding, job changes)✓✓
Evergreen lists that add new matches every day✓✕
Every lead enriched automatically✓Email enrichment
ICP filters checked before every send✓✕
Scores every lead before reaching out✓✓
Reaching them
Routes your best accounts to your best prospects✓✕
Per-account limits for invites, messages, reads, likes and comments✓✕
Smart warm-up and ramp-up✓✕
Post engager campaigns✓✓
Keyword and follower campaigns✓✕
Free InMails to Open Profiles✓✕
Blacklist✓✕
Replies and booking
AI drafts replies and sends your booking link✓✓
One inbox for every account✓✓
Custom Slack notifications✓✕
Setup and plumbing
Set up for you by our team✓Done-for-you only
CRM integrations✓✓
Public API and webhooks✓✓
MCP for Claude and ChatGPT✓✓

How to switch

8 steps. We do them with you.

  1. Export your Valley prospects

    Export prospects with LinkedIn URLs and any fields you use, through the API or the app.

  2. 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"}
          ]}'
  3. 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 Valley 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 Valley campaigns first, then switch it on in Gelee.

    Brand new or rested account? Turn on warm-up and it starts slow.

  4. Swap your message variables

    Paste your Valley 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}}
    • a custom field → {{custom.field_name}}
  5. Rebuild the campaign

    Rebuild each campaign's steps. If you relied on approving every message, use Gelee's approval mode: the AI drafts replies and a person approves them in the app, in Slack or through GET /drafts.

  6. 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 Valley 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"]}]}'
  7. Repoint your integrations

    Map Valley's webhook events to Gelee's using the table above.

    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 Valley one running until you cut over, so your CRM doesn't have a gap.

  8. 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 Valley for a few weeks, and look at accepts, replies and booked calls. Split by seat, never by person.

    Happy? Pause the rest of Valley, 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 Valley. Connect it to Claude or ChatGPT and ask it to move you over. It checks with you before anything sends.

Set up the MCP

Questions

Good to know.

Can I run Valley 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 Valley 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

Valley has a JSON REST API at api.joinvalley.co (x-api-key header, OpenAPI schema) covering campaigns, prospects, approvals, inbox, warm lists and analytics, an MCP server, and webhooks it describes as 19 event types (replies, accepted connections, interest changes, prospects added or removed, new outreach and more). Its site says AI agents cannot send outreach on their own: changes need approval.

Their words, our words

ValleyGeleeNotes
CampaignCampaign
ProspectLead
ApprovalsDraftsGET /drafts, approve or skip.
Warm listCampaign leads
LinkedIn accountSeat

API calls

ValleyGeleeNotes
ProspectsGET /prospects, /people, POST /campaigns/{id}/leads
ApprovalsGET /drafts, POST /drafts/{id}/approve, /skipOn the Gelee API, your request is the approval.
InboxGET /inbox, GET /inbox/{chat_id}/messages, POST …/messages
AnalyticsGET /analytics/daily, /campaigns/{id}/performance, /health

Webhooks

ValleyGelee webhookNotes
Reply eventsreply_received, reply_positive, reply_negative
Accepted connectionconnection_accepted
Interest changelead_updated, reply_positive
Prospect added / removedlead_accepted, lead_updated (removed)
New outreachinvite_sent, message_sentPick by name.

Message variables

ValueGelee 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 Valley? 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.