Switching from another tool
From Valley
Valley'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 Valley: Switching from Valley to Gelee.
What Valley offers
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
| Valley | Gelee | Notes |
|---|---|---|
| Campaign | Campaign | |
| Prospect | Lead | |
| Approvals | Drafts | GET /drafts, approve or skip. |
| Warm list | Campaign leads | |
| LinkedIn account | Seat |
API calls
Every Valley 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.
| Valley | Gelee | Notes |
|---|---|---|
Prospects | GET /prospects, /people, POST /campaigns/{id}/leads | |
Approvals | GET /drafts, POST /drafts/{id}/approve, /skip | On the Gelee API, your request is the approval. |
Inbox | GET /inbox, GET /inbox/{chat_id}/messages, POST …/messages | |
Analytics | GET /analytics/daily, /campaigns/{id}/performance, /health |
Webhooks
Gelee signs every delivery and retries failures. Setup and signature checks are in Webhooks.
| Valley | Gelee webhook | Notes |
|---|---|---|
| Reply events | reply_received, reply_positive, reply_negative | |
| Accepted connection | connection_accepted | |
| Interest change | lead_updated, reply_positive | |
| Prospect added / removed | lead_accepted, lead_updated (removed) | |
| New outreach | invite_sent, message_sent | Pick by name. |
Message variables
| Valley | Gelee |
|---|---|
First name | {{firstName}} |
Company | {{company}} |
A custom field | {{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"]}]}'