Search Docs…

Search Docs…

Leads

Update Lead Status

🚨 Important Notice – Read This First

Platforms like SmartLead, Instantly, PlusVibe, and several others already send lead status + sentiment automatically into Outreach Magic.

➑️ You only need this guide if:

  • you want to override the default lead status your platform sends

  • you want to add or customize statuses

  • you use a platform that does NOT provide lead status

  • you are sending custom logic from n8n, Zapier, Make.com, Clay, or your CRM

If you use SmartLead, Instantly, PlusVibe normally, Outreach Magic handles all the mapping automatically β€” no setup required.

Outreach Magic API – lead_status_updated (Automation Platforms Guide & Reference)

The lead_status_updated event lets you sync real-time reply classifications, sentiment signals, and engagement outcomes from any major outbound or automation platform, including:

SmartLead, Instantly, PlusVibe, HeyReach, SalesLoft, Outreach.io, Pipedrive Campaigns, Apollo, Lemlist, Klenty, HubSpot Sequences, LinkedIn automation tools, Zapier, n8n, Clay, Make.com, and more.

Outreach Magic automatically normalizes statuses and sentiment from multiple systems so you can unify reporting, automate workflows, or sync data into any CRM you use.

If you have a platform we don’t yet integrate with, we support custom API ingestion using this endpoint.

Use Clay?

Download a ready-to-use Clay Starter Pack: πŸ‘‰ https://outreachmagic.io/clay-starter-pack

Pre-mapped for:

  • any email tool (SmartLead, Instantly, etc.)

  • any LinkedIn tool

  • reply classifications

  • status + sentiment mapping

  • CRM enrichment workflows

Overview

This endpoint is designed for teams using automation tools and CRMs who want a single, unified engagement signal for each lead.

Use lead_status_updated to sync:

  • reply sentiment

  • conversation outcomes

  • meeting booked signals

  • sequence/flow status changes

  • SmartLead classification

  • Instantly auto-tags

  • LinkedIn DM replies

  • custom logic from n8n, Zapier, or Make

  • CRM-triggered lead status updates

  • Clay β†’ Outreach Magic β†’ CRM automations

Both status and sentiment are required for this event. This event does not update lead attributes β€” only engagement and sentiment.

Endpoint & Headers

POST https://api.outreachmagic.io/v1/events

Headers:

  • x-api-key: {{YOUR_API_KEY}}

  • content-type: application/json

Minimal Request (Single)
{
  "event": "lead_status_updated",
  "sender": "[email protected]",
  "channel": "email",
  "lead_email": "[email protected]",
  "status": "interested",
  "sentiment": "positive"
}
Maximum Request (Single)
{
  "event": "lead_status_updated",
  "platform": "plusvibe",
  "channel": "email",
  "timestamp": "2025-09-03T12:15:00Z",
  "sender": "https://www.linkedin.com/in/example-sender",
  "lead_email": "[email protected]",
  "lead_linkedin_url": "https://www.linkedin.com/in/example-lead",
  "campaign_id": "24aa6634-2881-4801-bff1-941cb25827bd",
  "campaign": "LinkedIn Connection Request",
  "status": "interested",
  "sentiment": "positive"
}
Batch Request (Multiple)
[
  {
    "event": "lead_status_updated",
    "channel": "email",
    "sender": "[email protected]",
    "lead_email": "[email protected]",
    "status": "interested",
    "sentiment": "positive"
  },
  {
    "event": "lead_status_updated",
    "channel": "linkedin",
    "sender": "https://www.linkedin.com/in/example-sender",
    "lead_email": "https://www.linkedin.com/in/example-lead",
    "status": "not_interested",
    "sentiment": "negative"
  }
]
Full Example – All Fields
JSONC (with comments)
{
  // Required
  "event": "lead_status_updated",

  // Status + sentiment are both required
  "status": "not_interested",
  "sentiment": "negative",

  // Source system (any platform)
  "platform": "smartlead",

  "channel": "email",
  "sender": "[email protected]",

  // Lead identifiers
  "lead_email": "[email protected]",
  "lead_linkedin_url": "https://www.linkedin.com/in/sample",

  // Optional metadata
  "campaign_id": "cmp_123",
  "campaign": "Outbound Wave 1",
  "message_id": "msg-2093812"
}
Pure JSON
{
  "event": "lead_status_updated",
  "status": "not_interested",
  "sentiment": "negative",
  "platform": "smartlead",
  "channel": "email",
  "sender": "[email protected]",
  "lead_email": "[email protected]",
  "lead_linkedin_url": "https://www.linkedin.com/in/sample",
  "campaign_id": "cmp_123",
  "campaign": "Outbound Wave 1",
  "message_id": "msg-2093812"
}
Sentiment Options

Sentiment

Meaning

positive

Lead expresses interest or positive intent

negative

Lead rejects or shows negative intent

neutral

No clear positive/negative intent

invalid

Bounce, invalid address, unusable data

Use Cases for Automation Teams
This event is ideal for teams using:
  • n8n β†’ reply detection β†’ CRM sync

  • Clay β†’ enrich β†’ score β†’ send status to OM

  • Zapier / Make β†’ detect replies β†’ map status+sentiment

  • SmartLead / Instantly β†’ override automatic classifications

  • HeyReach / LinkedIn tools β†’ DM sentiment tracking

  • Custom internal tools β†’ custom statuses

  • HubSpot / Salesforce / Pipedrive β†’ CRM β†’ OM β†’ CRM loops

Run your entire pipeline using one unified lead engagement model.

Responses
Success
{
  "errors": { "count": 0, "details": [] },
  "success": 1,
  "total": 1
}
Invalid API Key
{
  "error": "Invalid API key provided"
}
Validation Error
{
  "errors": {
    "count": 1,
    "details": [
      {
        "error": [
          {
            "msg": "sentiment must be one of: positive, negative, neutral, invalid",
            "type": "value_error"
          }
        ]
      }
    ]
  }
}
Rules & Matching Behavior
Must Include
  • event: "lead_status_updated"

  • channel

  • sender

  • status (required)

  • sentiment (required)

  • β‰₯1 lead identifier (lead_email, LinkedIn URL, LinkedIn ID, or unified ID)

Matching Priority
  1. unified_lead_id
  2. lead_email

  3. lead_linkedin_url / lead_linkedin_id

If a lead doesn’t exist, Outreach Magic will auto-create it.

Field Reference
Required
  • event

  • channel

  • sender

  • status

  • sentiment

  • β‰₯1 lead identifier

Optional Metadata
  • campaign_id

  • campaign

  • message_id

  • platform (recommended for auditing)

Error Codes

Code

Meaning

Fix

ERR_INVALID_SENTIMENT

Invalid sentiment

Use allowed list

ERR_SENDER_REQUIRED

Missing sender

Add sender

ERR_CHANNEL_REQUIRED

Missing channel

Add "email" or "linkedin"

ERR_STATUS_REQUIRED

Status missing

Add status

ERR_LEAD_IDENTIFIER_MISSING

Missing lead info

Add email or LinkedIn

ERR_INVALID_API_KEY

API key incorrect

Replace API key

Integration Snippets
n8n β†’ Outreach Magic
return {
  event: "lead_status_updated",
  channel: "email",
  sender: $json.sender,
  lead_email: $json.lead.email,
  status: $json.status,
  sentiment: $json.sentiment
};
Clay β†’ Outreach Magic

Use the Clay starter pack and connect your automation step.

Node.js Example
await fetch("https://api.outreachmagic.io/v1/events", {
  method: "POST",
  headers: {
    "x-api-key": process.env.OM_API_KEY,
    "content-type": "application/json"
  },
  body: JSON.stringify({
    event: "lead_status_updated",
    platform: "instantly",
    channel: "email",
    sender: data.sender,
    lead_email: data.lead_email,
    status: data.classification,
    sentiment: data.sentiment
  })
});
Clay / Postman Notes
  • Use pure JSON

  • content-type: application/json required

  • Batch requests must be an array

  • status and sentiment must both be included

  • A valid API key is required