CJM
Signals

Understand and verify Signals

Learn what CJM sends to Meta, Google Ads, and GA4, when it sends it, and how to verify delivery.

Signals is the delivery history for server-side events that CJM sends to Meta CAPI, Google Ads, and Google Analytics 4. Use it to answer three questions: what was sent, why it was sent, and whether the platform request succeeded.

Signals does not turn delivery on. Configuration is kept separate so that you can choose deliberately which business events each platform receives:

  1. Connect the destination under Setup → Channels.
  2. For CRM and scoring milestones, configure Offline Conversion.
  3. For selected Pixel events, create Server Tracking rules.
  4. Open Signals in the project and verify the results.

The dashboard navigation is being reorganized. If the sidebar group changes, use the page names Setup, Channels, Offline Conversion, Server Tracking, and Signals rather than relying on the old menu position.

Which signals CJM can send

OriginWhen it runsMetaGoogle AdsGA4Why send it
Web engagementA supported event arrives from the CJM PixelPageView for a page load; ViewContent for other supported interactionsOnly through a matching Server Tracking ruleGive Meta server-side visibility into consented website activity.
Lead captureCJM receives a lead_captured event and resolves a ProfileLeadOnly through a matching ruleTell Meta that an anonymous visit became an identified lead.
First MQL qualificationEither Fit or Intent first reaches 60One configured CJM event for each high component, plus SubmitApplication; both can be sent when Fit and Intent are highCJM_MQL_HighFit, CJM_MQL_HighIntent, or bothOnly through a matching ruleSeparate a strong customer fit from active buying intent so campaigns can optimize for the useful signal.
SQLThe Profile enters SQL for the first timeConfigured CJM SQL event plus ContactCJM_SQLOnly through a matching ruleReport the first sales-qualified milestone without counting later updates again.
OpportunityThe Profile reaches Opportunity with a value greater than zeroConfigured CJM Opportunity event plus ContactCJM_OpportunityOnly through a matching ruleSend a commercial milestone only when CJM has a meaningful deal value.
WonThe Profile reaches Won with a value greater than zeroConfigured CJM Won event plus PurchaseCJM_WonOnly through a matching ruleReturn confirmed revenue to advertising platforms for optimization and reporting.
Server Tracking ruleA received Pixel event matches the rule's trigger and optional event name, Pixel, and URL conditionsThe event selected in the ruleThe conversion action selected in the ruleThe event name selected in the ruleForward only the website behavior you intentionally mapped to that destination.

Lead, Lost, and Disqualified pipeline stages do not create stage-based conversions. Lead capture has its own Meta path. MQL is based on scoring, not a CRM stage. SQL is sent only on first entry; Opportunity and Won require a positive monetary value.

One source event can therefore produce more than one Signal. For example, an MQL with both high Fit and high Intent can create two custom Meta events, one standard Meta event, and two Google Ads conversions. Meta also stores one row for every destination Pixel.

How CJM enriches a signal

CJM combines the triggering event with the Profile, the most relevant saved session, and attribution data. It uses only fields that are available and allowed by consent.

Possible enrichment includes:

  • Profile identity: email, phone, first and last name, and CJM Profile ID;
  • advertising identifiers: Meta _fbp and _fbc, Meta Lead ID, or Google gclid, wbraid, and gbraid;
  • attribution: campaign and ad identifiers when CJM can resolve them;
  • context: source URL, IP address, browser/device data, language, location, and UTM parameters where supported by the destination;
  • business meaning: CJM stage, Fit/Intent qualification, score, value, and currency;
  • ecommerce details: transaction ID, products, quantities, prices, and coupon when present in a supported ecommerce event.

Missing enrichment does not necessarily mean failure. For example, an anonymous page view can have browser identifiers but no Profile contact data. Each platform also accepts a different subset; see the platform guides for the exact behavior.

CJM first uses the consent snapshot attached to the event. If it is absent, it uses the current consent stored on the Profile; if neither exists, the signal is treated as unspecified.

DestinationCurrent delivery rule
MetaBoth adUserData and adPersonalization must be granted. Otherwise no Meta event is sent.
Google AdsA click identifier can still be used with the declared consent state. Email and phone are included only when adUserData is granted. Without a click identifier or permitted contact data, nothing is sent.
GA4analyticsStorage must be granted. Hashed user data is added only when adUserData is also granted.

These rules apply to automatic conversion delivery and Server Tracking rules. See the consent model before enabling signals on a live site.

Read the Signals overview

  1. Open the project and select Signals.
  2. Use Overview to see all destinations together.
  3. Choose the date range and, if needed, filter by Status or originating CJM Event.
  4. Use the platform selector to limit the page to Meta, Google Ads, or GA4.
  5. Select a row to open its details.

The Overview shows:

  • Total sent: stored delivery attempts in the selected period;
  • Rejected: attempts recorded as failed. High appears when failures are at least 10% of the total;
  • Avg delay: average time between the stored send and receipt timestamps, where a receipt timestamp is available;
  • Recent activity: the latest stored Signals;
  • Origin breakdown: how stored events map to CJM milestones or Server Tracking. It is informational and is not a filter.

The comparison below each KPI uses the immediately preceding period of the same length. Platform tabs contain their own event list; the aggregate KPIs remain on Overview.

Understand delivery status

Dashboard statusMeaningWhat to do
ActiveCJM recorded the platform request as successful.Check the destination later if you also need to confirm matching, attribution, or reporting.
ProcessingThe stored attempt has not reached a final state.Wait and refresh. Investigate if it remains unchanged.
ErrorCJM recorded a failed platform request.Open the row and inspect the error and response, then verify the integration and destination configuration.

An Active Signal proves delivery from CJM, not that the platform attributed the conversion to a campaign or will show it immediately in reports. A signal skipped before a request—because consent, identifiers, integration, rule, or destination is missing—may not create a row at all.

Verify a single signal

Open an event row and check Status & timing, Conversion / Event, the linked Lead, and the technical details when present. Confirm that:

  1. the event or conversion name represents the intended business action;
  2. Triggered by identifies the expected CJM milestone or Server Tracking;
  3. the platform, Pixel, value, and currency are correct;
  4. the linked Profile is the expected person;
  5. the payload, response, or error explains any unexpected result.

Start troubleshooting at the source: confirm that CJM received the original event, then check consent, the active connection, and the relevant Offline Conversion or Server Tracking configuration.

On this page