Overview
An inbound integration is anything that sends events into Extole: the JavaScript tag on your site, a mobile SDK, a server calling the Events API, a partner platform, or a file dropped on SFTP. When one of those events doesn’t produce the outcome you expected — no conversion on the dashboard, no reward, no email — the event stopped at one of a few stages on its way through the platform. This page is for the product manager or developer who owns that integration. It explains the stages, which tool in My Extole shows each one, and a sequence that finds the stage where your event stopped.How an Inbound Event Moves Through Extole
Every inbound event takes the same path, whatever sent it:- Arrival. Extole receives the event and records it as an input event, under the name you sent —
purchase,account_opened,partner_order_created. - Identity. Extole attaches the event to a person, using the identifiers the event carries, such as an email address or a partner user ID. An event with no identifier stays with an anonymous person.
- Matching. Each campaign listens for input events by name. When a campaign’s trigger matches the name, the event creates a step on the person —
converted,registered,account_opened. An input event that no campaign listens for is stored and creates no step. - Evaluation. The step is scored for quality, attributed to a journey when the person has one, and can go on to issue rewards and send messages.
- Reporting. Steps in the production container count in dashboards and reports.
Event Streams: Watch Events Arrive
An Event Stream is a live feed of the events your account receives. It is the fastest way to answer “is my event reaching Extole, and what does it look like when it does?” Use it while you reproduce the problem:- Create a stream and narrow it with filters. Event Name and Person ID are the most useful while testing; Event Type set to
INPUTshows only what arrived, before any campaign acted on it. - Click Start Streaming. A stream is not a history: it shows events from the moment it starts, so start it before you send the test event. A running stream stops on its stop date, one hour out by default.
- Send the event from your integration, then refresh the stream.
- Open the event and read it as JSON. Check the
name, thedatafields, thesandboxcontainer, and theevent_context—app_typeandinput_event_typetell you which integration sent it.
INPUT event followed by a STEP event is an event that arrived and matched a campaign. An INPUT event with nothing after it arrived and matched nothing. For expressions that narrow a busy stream further, see Event Stream Query Language.
Event Live View: Check What Your Campaigns Did
Event Live View answers a later question: once an event reached a campaign, how did the campaign treat it? It lists recent events that campaigns acted on — shares, conversions, and your other business events — with the person, time, user agent, campaign, quality score, and review status of each.- Filter by date range, event type, channel, quality score (Suspicious or Passing), review status, and campaign.
- Search by event ID when you already have one, from a stream, a report, or your own logs.
- Select an event to read its detail as Pretty or Raw JSON.
A Person’s Steps: Follow One Person
When the problem is about one person — “this customer bought and the advocate got nothing” — start from the person. Find them under Support > Person Search by email, partner user ID, order number, or Extole person ID, open their profile, and choose Show Steps from the actions menu. The Steps list shows every step recorded on that person, with its Name, Campaign, Program, Container, Quality, Journey, and Date. Select a step to see its data, and open it as JSON for the full record. Read it for three things:- Is the step there at all? If the step is missing but the input event arrived, no campaign matched the event’s name — or the event landed on a different person.
- Which container is it in? Toggle between All Containers and Production Only. A step that appears only under All Containers was routed to a test or other non-production container, and production dashboards and reports won’t count it.
- What are the quality and journey? A step with no journey was recorded but not attributed to a referral. A low quality score means a quality rule failed; the person’s Approvals tab names the rule.
Debugging Reports: Check the Whole Feed
Streams and person lookups test one event at a time. To know whether a feed is working across the account — every event, over a day, a week, or a month — run a report. These are the most useful for inbound integrations. None of them is on a category tile on the Reports page, so open Reports, click + New Report, and search for the report by name. A Client Admin can find and run every report in this table:
Input event names with triggered steps and Input Records read only the
production container unless you choose another, so a feed that runs only in testing looks empty in them until you set the container to test or all. Set the container on every report you run, so that you know which events you’re counting.
Once the feed is sound, the Events report is the one to confirm the business result: one row per event, with the person and the related person, matching what the dashboard counts.
A Debugging Sequence
Work through these in order and stop at the first check that fails. That check names the stage to fix.- Did the event arrive? Start an Event Stream filtered to the event name, and send a test event. For past traffic, run Input event names with triggered steps for the time range and look for the name and its count. If nothing arrives, the problem is on the sending side: the tag, SDK, API call, partner configuration, or file never reached Extole, or reached it under a different name.
- Did it arrive under the name the campaign expects? Compare the
nameon the input event with the event name on the campaign’s trigger. Matching ignores case, but not spelling —order_completedoes not matchorder_completed. A partner integration has two vocabularies: the partner’s own event name belongs on the trigger, and the Extole name (converted,shipped) belongs on the step. See Sending Partner Events to Extole. - Did it create a step? Run Input event names with triggered steps for the name. Events with no triggered steps mean no live campaign is listening for that name, or the campaign’s trigger rules rejected the event.
- Did the step land on the right person? Open the person’s steps. If the step is on an anonymous or unexpected profile, the event didn’t carry the identifier the rest of the journey used.
- Is the step in production? Check the Container column. Test data rules, a test container header, or a test sandbox all route events away from production reporting. See Exclude Test Data From Analytics.
- Was the step attributed and scored as you expected? Check the step’s quality and journey, and the event’s review status in Event Live View. Depending on your program’s approval workflow, a suspicious event is declined or waits for someone to approve it — see Approving and Declining Events Workflow.
- Does the report you’re reading count it? Match the report’s time range, container, and program to the step. A step dated in one day in your time zone can fall on the next day in your account’s time zone.
Common Findings
Before You Contact Extole Support
If you still can’t find where the event stopped, send Extole Support what you’ve gathered so they can start from the same place:- The event ID, from the stream, Event Live View, or a report.
- The Extole person ID, or the email and partner user ID the event carried.
- The event name exactly as your integration sends it.
- When you sent it, with the time zone.
- Which of the checks above passed, and the first one that failed.
