Webhooks
Coldreach can send real-time HTTP POST notifications to your server when key events occur. Configure webhook URLs in your Coldreach settings to start receiving events.
Overview
Webhooks let you react to events in Coldreach without polling the API. When an event fires, Coldreach sends a JSON payload to your configured URL via HTTP POST with a Content-Type: application/json header.
| Webhook | Trigger |
|---|---|
| New Opportunities | New qualified accounts are discovered for your campaigns |
| First Touch | The first email in a sequence is sent to a contact |
| Positive Reply | A positive reply is received from a contact |
Setting Up Webhooks
- Go to Settings > Notifications in the Coldreach app
- Find the webhook you want to enable
- Click Setup and enter your endpoint URL
- Coldreach will send a POST request to your URL whenever the event occurs
Your endpoint must return a 2xx status code. Non-2xx responses are treated as failures.
New Opportunities Webhook
Triggered when Coldreach discovers new qualified accounts matching your campaign criteria. This is typically evaluated on a weekly basis.
Configure this under New Opportunities > Webhook in your notification settings.
First Touch Webhook
Triggered when the first email in a sequence is sent to a contact. Useful for syncing outreach activity to your CRM or triggering downstream workflows.
Payload
{
"fullName": "Jane Smith",
"firstName": "Jane",
"lastName": "Smith",
"email": "[email protected]",
"linkedInURL": "https://linkedin.com/in/janesmith",
"companyName": "Acme Corp",
"companyWebsiteURL": "https://acme.com",
"companyDescription": "Enterprise SaaS platform for...",
"companyLocation": "San Francisco, CA",
"campaignId": 123,
"campaignName": "Series B SaaS Companies",
"subject": "Quick question about Acme",
"body": "Hi Jane, I noticed that..."
}
Fields
| Field | Type | Description |
|---|---|---|
fullName | string | Contact's full name |
firstName | string | Contact's first name |
lastName | string | Contact's last name |
email | string | Contact's email address |
linkedInURL | string | Contact's LinkedIn profile URL |
companyName | string | Company name |
companyWebsiteURL | string | Company website URL |
companyDescription | string | Company description from LinkedIn or website |
companyLocation | string | Company headquarters location |
campaignId | number | ID of the campaign that triggered outreach |
campaignName | string | Name of the campaign |
subject | string | Email subject line |
body | string | Email body content |
Positive Reply Webhook
Triggered when a contact sends a reply that is classified as positive. This fires for both email and LinkedIn channels.
Payload
{
"assignmentId": 456,
"channel": "email",
"contactEmail": "[email protected]",
"contactName": "Jane Smith",
"contactLinkedInUrl": "https://linkedin.com/in/janesmith",
"companyName": "Acme Corp",
"companyUrl": "https://acme.com",
"companyDomain": "acme.com",
"replyMessage": "Thanks for reaching out! I'd love to learn more...",
"senderEmail": "[email protected]",
"campaignId": 123,
"campaignName": "Series B SaaS Companies"
}
Fields
| Field | Type | Description |
|---|---|---|
assignmentId | number | Internal assignment ID |
channel | string | "email" or "linkedin" |
contactEmail | string | Contact's email address |
contactName | string | Contact's full name |
contactLinkedInUrl | string | Contact's LinkedIn profile URL |
companyName | string | Company name |
companyUrl | string | Company website URL |
companyDomain | string | Company domain (e.g. acme.com) |
replyMessage | string | The reply message body |
senderEmail | string | Email address that sent the original outreach |
campaignId | number | null | ID of the associated campaign |
campaignName | string | Name of the associated campaign |
Best Practices
- Use HTTPS — Always use an HTTPS endpoint for security.
- Respond quickly — Return a 2xx response within a few seconds. Process the payload asynchronously if needed.
- Handle duplicates — In rare cases, the same event may be delivered more than once. Use
assignmentIdorcampaignId+emailas an idempotency key. - Validate payloads — Check that incoming requests contain the expected fields before processing.