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 asevent.*. 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 viaperson.steps.
PersonReward
One reward on the person’s profile, accessible viaperson.rewards.
PersonReferral
One referral relationship, accessible viaperson.recentAssociatedFriends or person.recentAssociatedAdvocates.
RequestContext
One device and geo snapshot, accessible viaperson.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.
