Skip to main content

Overview

Use this document alongside Custom Data Queries using Extole Reports, which covers expression syntax and functions. In a report mapping, the primary row record is accessed as event.*. Which entity that is depends on the report type — see Configurable Report Types and Their Entities for the mapping from report type to entity. Some fields recur across entities and have a guide of their own. For quality and visitType, see Visit Type and Quality; for journeyName and the journey structure behind it, see Understanding Extole Journeys.

StepRecord

Used in: Events, Metrics reports · Access: event.* One step in the referral lifecycle recorded on a person’s profile. Examples: a share, a click, a conversion, a reward earned. Steps carry quality signals, attribution, and device context on top of the raw event data. Common data keys: amount, source, channel, locale, country, partner_user_id, api_type. Mapping examples: event.* In a Metrics report, step_name scopes the aggregation to a specific step: quality

InputRecord

Used in: Input Records, Input Record Metrics reports · Access: event.* A raw inbound event from a client integration, before it is processed into a step. Captures the original payload and the device and network context at request time. Mapping examples: visitType

Person

Function: person(personId) · e.g. person(event.personId).email The full profile for one participant. A person accumulates steps, rewards, and referral relationships over time. Use the PERSON_COLLECTION function to filter and aggregate data from the collection fields. Mapping examples: journeyName Use person_collection to aggregate from profile collections. It is more memory-efficient than collection for large profiles. event.* Use FIRST or LAST with sortBy to extract a single step: id

PersonStep

One step on the person’s timeline, accessible via person.steps.

PersonReward

One reward on the person’s profile, accessible via person.rewards.

PersonReferral

One referral relationship, accessible via person.recentAssociatedFriends or person.recentAssociatedAdvocates.

RequestContext

One device and geo snapshot, accessible via person.recentRequestContexts. Mapping example: clientId

BuiltCampaign

Function: campaign(campaignId) · e.g. campaign(event.campaignId).campaignName The latest published state of a campaign. Use this when you need the current name, state, or dates as of the most recent publish. Mapping examples: personId Use a hidden() column when you need multiple fields from the same campaign to avoid resolving it twice: name

CampaignSummary

Function: campaign_summary(campaignId) · e.g. campaign_summary(event.campaignId).firstLaunchDate An aggregated view built from all known campaign state-change events. Use this instead of campaign() when you need historical milestone dates rather than the current snapshot. Mapping examples: converted

Client

Function: client(clientId) or client() (uses the event’s client) · e.g. client(event.clientId).shortName The brand account on the platform. Arbitrary client configuration values are accessed via client_properties() (no argument): shared Mapping examples: signup client() with no argument resolves to the event’s own client, so both forms are equivalent in single-client reports: primaryStepName When running a cross-client report from the Extole account, filter to real customers: eventTime

RewardSummary

Function: reward(rewardId) · e.g. reward(event.data.reward_id).currentState The full lifecycle of one reward instance, built from all known reward state-change events. Mapping examples: requestTime To sum total reward value issued across a step in a Metrics report: programLabel

RewardSupplier

Function: reward_supplier(rewardSupplierId) · e.g. reward_supplier(event.rewardSupplierId).displayType The configuration for how rewards are structured and issued. Mapping example: campaignId

SupportSummary

Function: support() · e.g. support().salesforceAccountId Account-level support and CRM metadata for the current client. No argument is required. Mapping example: container

ConsumerEvent

Function: event(eventId) · e.g. event(event.rootEventId).type The raw event object. Most reports use StepRecord or InputRecord as the primary row record; load the raw event when you need the full person sub-object or properties not available on the record. StepConsumerEvent adds: name, aliases, firstSiteVisit, duplicate, partnerEventId, referralContext, selectedCampaignContext. InputConsumerEvent adds: name, url, referrer, sourceIps, httpHeaders, httpCookies, labels, locale. Mapping examples: production Two common cross-entity lookups worth knowing: From a step event, load the originating input record (gives you apiType, userAgent, etc.): quality From a reward event, load the step record that earned the reward (gives you visitType, quality, etc.): HIGH

AudienceMembershipRecord

Used in: Audience Memberships, Audience Memberships Metrics reports · Access: event.* (no join function — only reachable as the primary record of these two report types) One audience membership change event: a person entering, updating, or leaving an audience segment.

MessageSummary

Used in: Message Metrics reports · Access: event.* (no join function — only reachable as the primary record of this report type) One outbound message (typically email) triggered by a campaign, with delivery and suppression outcome.

WebhookEvent

Used in: Webhook Events, Webhook Event Metrics reports · Access: event.* (no join function — only reachable as the primary record of these two report types) One webhook trigger event — the event that queues a webhook dispatch, before the dispatch attempt itself.

WebhookDispatchResultEvent

Used in: Webhook Dispatch Results, Webhook Dispatch Result Metrics reports · Access: event.* (no join function — only reachable as the primary record of these two report types) The outcome of one webhook dispatch attempt — the HTTP request Extole sent and the response received.

ClientEvent

Used in: Client Event Metrics reports · Access: event.* (no join function — only reachable as the primary record of this report type) An operational or business event logged against a client account (e.g. a platform notice or account-level occurrence), distinct from a person’s referral-program steps.