Skip to main content

Lead Disqualified

Fire the lead_disqualified event when a lead is disqualified by your marketing or sales process — out of ICP (Ideal Customer Profile), no budget, no authority, no timing, duplicate, invalid contact, or any other reason that removes the lead from active pursuit. This event is a valuable negative signal: when uploaded as an exclusion to ad platforms, it helps the algorithm steer away from similar low-quality leads.

Fire the event once per disqualification action, typically server-side from your CRM when a lead stage is moved to Disqualified/Rejected/Closed Lost (pre-opportunity).

This event is the DATA Reshape equivalent of the standard lead-disqualified event in every major advertising and analytics platform — push it once and Reshape fans it out to every connected destination with the correct platform-specific name and field mapping, so you do not need to fire gtag, fbq, ttq or other tracking function calls in parallel.

  • Google Analytics 4 — no dedicated standard event; mapped as a custom event.
  • Meta Pixel / Meta Conversions API — no dedicated standard event; Reshape can send a custom CamelCase event LeadDisqualified when connected. Can be configured as a negative signal for audience exclusion.
  • TikTok Pixel / TikTok Events API — no dedicated standard event; Reshape can send a custom CamelCase event LeadDisqualified when connected.
  • Other connected destinations — mapped automatically based on each destination's native schema; CRM connectors typically update the lead stage to disqualified.
One push, many native events

A single Reshape event can produce one or more native events per destination, with different characteristics depending on each website's destination configuration (active pixels, server endpoints, event-mapping rules).

Complete Reference

The lead_disqualified event accepts the following objects and fields.

event object required

name string required

info

Use only static value lead_disqualified for event.name. DATA Reshape maps this to a custom event in GA4, and a custom CamelCase event LeadDisqualified in Meta and TikTok when connected.

name: "lead_disqualified"

value number required

info

Typically 0 for disqualified leads.

value: 0

currency string required

info

Currency code, ISO 4217 three-letter format.

currency: "USD"

id string required

info

Lead ID (same as the original lead_created ID).

id: "lead_abc123"

properties object recommended

info

Capture the disqualification reason here — critical for downstream analytics and negative-audience configuration.

context object

info

For server-side firing (typical), use the API context. View complete Context API Object documentation

url string required-if-applicable

info

Collected automatically for standard websites. Required only for SPA applications where URL changes don't trigger automatic page context updates.

url:"https://example.com/products/prod_abc123?utm_source=example"
warning

URL Parameter Sensitivity: Be mindful of sensitive information in URLs. Query parameters may contain personal identifiers, session tokens, or private information that should be handled according to privacy regulations.

page_type string recommended

info

Type of page (product, home ...)

page_type: "product"

environment string recommended

info

Allowed values: prod, dev

environment: "prod"

user object required

info

The disqualified lead identity. Same user.id as in the original lead_created event. View complete User Object documentation

id string recommended

info

Unique customer identifier in your system.

id: "cust_abc123"

email string recommended

info

Customer email address in plaintext. Do not send pre-hashed values — DATA Reshape automatically normalizes and hashes before sending to destinations.

phone string recommended

info

Customer phone number in E.164 format (plaintext). Do not send pre-hashed values — DATA Reshape automatically normalizes and hashes before sending to destinations.

phone: "+10000000000"

first_name string recommended

info

Customer first name

first_name: "Example First Name"

last_name string recommended

info

Customer last name

last_name: "Example Last Name"

country string

info

Country name or ISO country code

country: "US"

region string recommended

info

State, province, or region name

region: "Example Region"

city string recommended

info

City or locality name

city: "Example City"

street string

info

Street address including number

street: "123 Sample Street"

postal_code string

info

Postal code or ZIP code

postal_code: "00000"

orders_total_number number recommended

info

Cumulative number of orders placed by this user

orders_total_number: 5

orders_canceled_number number recommended

info

Cumulative number of orders placed and canceled by this user

orders_canceled_number: 0

orders_total_value number recommended

info

Cumulative lifetime user orders value (decimal format: 2500.50)

orders_total_value: 1234.99

orders_refunded_value number recommended

info

Cumulative lifetime user orders value canceled (decimal format: 2500.50)

orders_refunded_value: 250.99

predicted_value number

info

Predicted lifetime value of a customer for your business

predicted_value: 100.99

created_at number recommended

info

Timestamp in milliseconds since Unix epoch representing the first time the user was recorded

created_at: 1754926521690

properties object recommended

info

Custom Customer Properties Examples

User Segmentation

Use the properties object to store custom user attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns.

properties: {
customer_type: "returning",
membership_level: "platinum",
preferred_category: ["electronics", "fashion"],
last_purchase_date: "2024-12-15",
average_order_value: "350.00",
payment_method_preference: "card",
registration_date: "2023-06-15"
}

Examples

The examples below show how to push lead_disqualified for four common rejection reasons — Out of ICP, No Budget, No Authority and Duplicate — plus an additional Minimal tab with only the required fields.

window.reshape = window.reshape || [];
reshape.push({
"event": {
"name": "lead_disqualified",
"value": 0,
"currency": "USD",
"id": "lead_abc123",
"properties": {
"disqualification_reason": "out_of_icp",
"disqualification_detail": "company_size_too_small",
"disqualification_stage": "MQL"
}
},
"context": {
"url": "https://crm.example.com/leads/lead_abc123",
"environment": "prod"
},
"user": {
"id": "cust_abc123",
"email": "[email protected]"
}
});
Custom properties

Custom properties (event.properties, user.properties, products[*].properties) are fully processed server-side. On browser-side pixels and tags, only a subset may be available. Server-side processing can also enrich the outgoing payload with additional parameters derived from context and data quality.

Best Practices

  • Use the same event.id as the original lead_created — this matches the disqualification to the original lead.
  • Always capture disqualification_reason — without this property, the event is useless for analytics. Use a consistent vocabulary: out_of_icp, no_budget, no_authority, no_timing, duplicate, invalid_contact, competitor, etc.
  • Fire server-side from your CRM — this event always originates from a CRM stage change.
  • Use as a negative signal in ad platforms — uploading disqualified leads as an exclusion audience helps Google Ads and Meta steer away from similar low-quality clicks.