Integrations
Setup Clay - Send Lead Attributes, Lead Status & LinkedIn Status
Outreach Magic + Clay Webhook – Send Lead Attributes, Lead Status & LinkedIn Status
Use Clay to push enriched lead, company, and workspace attributes directly into Outreach Magic – including:
Lead attributes (name, title, seniority, function, location)
Lead status + sentiment (e.g. Interested, Not a fit)
Tags (e.g.
warm_lead,demo_no_show)Workspace-level ICP and exclusion reasons
LinkedIn connection level per sender
This guide shows you how to use the Clay → Outreach Magic webhook:
…with a JSON payload that tells Outreach Magic which lead/company/workspace fields to update.
When You Should Use This (and When You Don’t Need It)
You should use this Clay webhook if:
You want to send enrichment from Clay (Apollo, ZoomInfo, Clearbit, Lusha, etc.) into Outreach Magic
You want to set or override lead status and map it into Outreach Magic’s normalized status/sentiment
You want to maintain workspace-wide attributes like:
import_namelist_sourceexclusion_reasonicp
You want to set LinkedIn connection level for a specific sender → prospect pair
You don’t need this if you only rely on tools like HeyReach, Prosp, Aimfox, etc. to send LinkedIn attributes; those platforms already push most LinkedIn profile fields into Outreach Magic automatically.
Endpoint & Auth (Clay Webhook)
HTTP Method & URL
Parameters
token(required, query): your Clay webhook token, generated inside Outreach Magic on the Clay integrations page.
Headers
content-type: application/json
No x-api-key header is required for this Clay-specific webhook. Authentication is handled via the token query parameter.
What This Webhook Does
Each request creates an internal update_attributes event in Outreach Magic.
That event can update:
Lead Attributes
Matched by:
lead_emaillead_linkedin_urllead_sales_navigator_urllead_linkedin_id
Include at least one of the lead identifier fields for a successful match.
Company Attributes
Matched by:
company_domaincompany_linkedin_url
Workspace-Wide Attributes (Require workspace_id)
Applied across the workspace:
import_namelist_sourceexclusion_reasonicptagslead_status+ derived fields (lead_status_status,lead_status_sentiment)
If you send tags / status / ICP / exclusion_reason, you must include
workspace_id.
Minimal Example (Single Lead From Clay)
This is a simple Clay → Outreach Magic payload that:
identifies the lead by email
identifies the company by domain
tags the lead and sets a lead status
Outreach Magic will:
Match the lead by
lead_emailMatch the company by
company_domainNormalize
tagsto lower_snake (e.g.warm_lead)Use
lead_statusto inferlead_status_statusandlead_status_sentimentif not explicitly provided
Full Example Payload – JSONC (Commented)
This version uses JSON with comments (
jsonc) for documentation. In Clay, you must send pure JSON (no comments).
Full Example – Pure JSON (Clay-Ready)
This is the same as above, but with comments removed and valid JSON that Clay can send directly:
Field Behavior & Normalization Rules
Use this as a quick reference when mapping Clay columns to Outreach Magic fields.
Core
event_type(required)Must be
"update_attributes"for this integration.
workspace_id(required when sending workspace-level fields)Needed whenever you send:
tagslead_status,lead_status_status,lead_status_sentimentimport_name,list_source,exclusion_reason,icp
Workspace-Level Fields
import_nameNormalized to lowercase.
Good for grouping lists, tests, or campaigns (e.g.
q3_outreach_list).
list_sourceFreeform string (e.g.
apollo,zoominfo,inbound_webform).
exclusion_reasonNormalized to lower_snake_case.
Examples:
bad_fit,competitor,existing_customer.
icpUppercased.
Can map to ICP labels you use internally (
YES,ICP 1,ICP 2, etc.).
Tags & Lead Status
tagsAccepts either:
JSON array:
["warm_lead", "demo_no_show"], orComma-separated string:
"warm_lead, demo no show".
Normalized to lowercase and spaces → underscores:
"Demo No Show"→demo_no_show.
lead_statusRaw workspace string (e.g.
"Interested","Not a fit","No response").Used as the source of truth.
lead_status_status(optional)Normalized status label (e.g.
attempted,interested,not_interested,disqualified).If omitted, Outreach Magic will infer it from
lead_status.
lead_status_sentiment(optional)High-level sentiment (
positive,neutral,negative).If omitted, Outreach Magic will infer it from
lead_status.
LinkedIn Connection Level
To set connection level, you must send both:
sender: LinkedIn profile URL of your sender e.g."https://www.linkedin.com/in/alice-outbound"linkedin_connection_level:1,2, or3
This lets Outreach Magic know how closely connected the sender is to the prospect on LinkedIn.
Lead Identification & Attributes
Identification (include at least one)
lead_emaillead_linkedin_urllead_sales_navigator_urllead_linkedin_id
Best practice: always include
lead_emailand one LinkedIn identifier when available.
Attributes
lead_first_name,lead_last_name,lead_full_namelead_job_titlelead_seniority(e.g.C-Level,VP,Director,Manager)lead_function(e.g.Engineering,Marketing,Sales)lead_linkedin_headlinelead_address,lead_country,lead_locationlinkedin_bioNormalized overrides:
lead_normalized_job_titlelead_normalized_first_namelead_job_title_normalizedlead_first_name_normalized
Company Identification & Attributes
Identification
company_domaincompany_linkedin_url
Attributes
company_namecompany_countrycompany_employee_range(e.g."51-200","201-500")company_employee_count(numeric-ish string, e.g."120")company_industrycompany_descriptioncompany_websitecompany_addresscompany_annual_revenue_range(e.g."10M-50M")Normalized fields:
company_normalized_namecompany_normalized_industry
How to Set This Up in Clay (High-Level Steps)
Exact UI labels in Clay may evolve, but the flow is always: build table → add HTTP/Webhook step → map columns → send JSON.
Get your Clay Webhook URL from Outreach Magic
In Outreach Magic, go to your Clay integrations page.
Generate or copy your Clay webhook token.
Your URL will look like:
Prepare your Clay table
Make sure your table has the columns you want to send:
Email(forlead_email)Company Domain(forcompany_domain)Any enrichment fields (title, location, ICP labels, etc.)
Any status or tags you want to push.
Add a Webhook / HTTP Request step in Clay
Choose method:
POST.URL: paste your Outreach Magic Clay webhook URL (with the
tokenparam).Body type: JSON (raw).
Map Clay columns to JSON body
Example mapping:
"lead_email": "{{Email}}""company_domain": "{{Company Domain}}""lead_status": "{{Lead Status}}""tags": "{{Tags}}"(either string or array)"import_name": "q3_outreach_list""list_source": "clay_apollo_enrichment"
Ensure
event_typeis hard-coded to"update_attributes".
Test with a small batch
Run the webhook for 1–5 rows.
Confirm in Outreach Magic that:
Leads are matched correctly.
Status, tags, ICP, and other fields are updated as expected.
Common Validation Issues
Here are some typical mistakes and how to avoid them:
Missing
event_type✅ Must be
"update_attributes".
Sending workspace-level fields without
workspace_idIf you include any of:
tags,import_name,list_source,exclusion_reason,icp,lead_status*→ you must includeworkspace_id.
No lead identifier
At least one of:
lead_emaillead_linkedin_urllead_sales_navigator_urllead_linkedin_id
Without these, Outreach Magic can’t know which lead to update.
Invalid
linkedin_connection_levelMust be
1,2, or3.And you must provide
senderwith a valid LinkedIn profile URL.