System Overview
Getting Started
Signing In to CaliberMind
New to CaliberMind - Start Here!
How to use Dashboards
How do I use CaliberMind's search functionality?
CaliberMind Home Page & Navigation
Digital Marketing Terminology
How Does CaliberMind Define a "Channel"?
What Is a CaliberMind Event or Event Table?
Account Detail (Search Result) Results
Opportunity Search Results
Campaign Detail Search Results
Person Detail Search Result
Connectors / Integrations
Adding Your First Connector
How To Connect AdRoll / RollWorks
How To Connect Google Analytics
How To Connect HubSpot
How To Connect LinkedIn Ads
How To Connect Marketo
Kickfire
Overview of Connectors
ZoomInfo / DiscoverOrg
CaliberMind IP Addresses for Whitelisting
Setting Up the LinkedIn Push Connector
Connecting Tableau to CaliberMind
CaliberMind Data Export to Google Cloud Storage
Ingesting CaliberMind Data Into Snowflake
Klaviyo connector [Via Fivetran]
In-App Notifications
Google Sheets
Segment Connector [via FiveTran]
Pushing Caliber Mind Person Engagement Data to Salesforce
Integrations Appendix by Connector
Act-On
SFTP Connector - Updated 2021
Connecting Your Data Warehouse to CaliberMind
Replicating CaliberMind Attribution Data to Salesforce
Salesforce Connector [via FiveTran]
Connector Health and Web Tracker Health reports
How to Connect Facebook Ads
KickFire De-Anonymization in CaliberMind
Connecting G2, Bombora, or 6sense
CaliberMind Connectors
Field History SFDC Limits (Salesforce)
SFTP Synced Files - Making a Data Change
How To Connect Outreach
CaliberMind Connectors - Start Here!
Power BI/ Tableau/ Looker Connectors Article
Google Ads Connector (via FiveTran)
Pardot Connector [via FiveTran]
Connections - Email Notifications
CaliberMind Data Access FAQs
Twitter API Connector via Fivetran
Microsoft Bing Connector
Setting Up the Salesforce Push Connector
How To Connect Microsoft Dynamics
Bing/Microsoft Ad's Connector
Connectors Status Page
Developer Guide
CaliberMind Entity Relations and System Tables
Developer Guide - Start Here!
What is Google BigQuery
CaliberMind Common Data Sources
CaliberMind Identity Levels
List Builder
What are Lists?
Importing a List
Account List Upload File Requirements
Keyboard Shortcuts using SQL
Creating an Account List From a Campaign
How to create a list of all Opportunities that have a very low Engagement
People List Upload File Requirements
Campaign List Upload File Requirements
Use Case Videos - Creating a List Using the List Builder
Creating a List Using the List Builder - Step-by-Step Instructions
Creating Company Lists using SQL
List Builder - Start Here!
Creating Company Lists in List Builder
Where is my Segments Menu?
Downloading a List - Step-by-Step Instructions
System Configuration
Object Mapping Filters
How to Map Your Salesforce Opportunity Revenue Field
Remove a BigQuery User within CaliberMind
Object Manager: Campaign Member
Setting Your Saved Filters for In-App Reporting
Object Mapping: Create a Filter
Object Mapping: Create a Mapping
Adding Custom Columns in Salesforce
Add BigQuery Users within CaliberMind
Custom Configuration for Object Mapping
Object Mapping: Create a Replacement
How to Email CaliberMind Reports
Setting Up UTM Mapping in CaliberMind
Standard Channel Logic
Channel Ranking Logic
Setting Up Account Trend Emails
UTM Parameters Formatting and Best Practices
Object Mapping for Filters - Start Here!
How to See Your Object Manager History and Revert Back to Previous Versions
Object Mapping: Create a Campaign Substitution
Web Tracker Installation & Settings
Installing AnalyticsJS (CaliberMind snippet)
Two ways to identify prospects that submit a form containing email address using AnalyticsJS
Install AnalyticsJS on a HubSpot website
Using AnalyticsJS Identify on embedded Hubspot forms
Using AnalyticsJS Identify on embedded Marketo forms
Types of Analytics.js Calls
Analytics.JS Overview
Using Analytics.js to Track Web and Product Events
Web Tracker and Installation Settings - Start Here!
How Cookie Settings Affect the Analytics.JS Tracking Script
Google Tag Manager (GTM) Ad Blockers
Using AnalyticsJS with Drift
How to check your AnalyticsJS implementation
Using AnalyticsJS with Qualified
Flows
Flows Status Page
How to use QuickFlows
Merge records in Salesforce CRM
Add a Quick-Flow to Salesforce Campaign
Using ClearBit Flows
CaliberMind's Most Popular Flows | Automations
Setting Up Workflow - Lead Deduplication
ZoomInfo - Add-to/Enrich your database
Setting Up Workflow - Website Repair
Setting Up Workflow - Account Deduplication
Creating Sales Campaigns from Salesloft and Outreach Activities
Setting Up Workflow - Contact Deduplication
Campaigns
Campaign-Program Membership
Program Logic for Campaigns
Custom Campaigns
Custom Programs for Campaigns
Campaigns - Start Here!
User Administration & SSO
Single Sign On (SSO) Setup
Manage Users - Viewing, Inviting, Updating Users and Roles
CaliberMind Data Warehouse Access in Google BigQuery
Administration and SSO - Start Here!
User Authentication and Provisioning
Model Configuration
Insights - Create Multiple Engagement Score Models
How to Change Event Touch Scores
Sales Opportunity Data Model
Engagement Scoring Time Decay - How It Works & How to Change It
Engagement Scoring Models Overview
How to Add or Change Engagement Score Multipliers
Add or Change Engagement Score Filters
Identify users using Intercom Messenger
GDPR Compliance with CaliberMind
Data Dictionary
ABM Engagement
ABM Best Practices
Using Engagement Score to Trigger an Update in Salesforce
Account-to-Lead (A2L) Matching
Lead-to-Account Matching (L2A)
Pushing CaliberMind ABM Scoring Fields to Salesforce.com
Linking to CaliberMind Reports in Salesforce
Engagement Scoring
Analytics
ABM Reports
Attribution
Attribution Models: W-Shaped
Attribution Models: Middle
Chain-Based Attribution Model
Removal effect with a Markov chain model
Attribution Reports Summary
Attribution - CaliberMind versus Embedded Attribution in Salesforce?
Analytics: People Tab in Attribution Overview
Analytics: Opps Tab in Attribution Overview
Choosing the Right Attribution Model
Virtual Campaigns in CaliberMind
The A-Shaped Model
Campaign Types - Best Practices for Easy-to-Read Attribution
Best Practices for Tracking Return-on-Ad-Spend (ROAS)
Analytics: Comparisons Tab in Attribution Overview
Analytics: Events Tab in Attribution Overview
Analytics: Summary Tab in Attribution Overview
Analytics: Explore Tab in Attribution Overview
Demand Generation
Revenue Contribution
Data Integrity
Customer Success
Understanding Reports
CaliberMind Analytics Concepts
Overview of Analytics and Attribution
Filters and Hyperlinks
Using the Engagement Trending Report
Using Tags to Organize Your Lists
Attribution Overview - Campaign Performance Table
Using Campaign Lists in Dashboards
Using Account Lists in Dashboards
CaliberMind Metrics Definition
Return on Ad Spend
Product Attribution Dashboard
Attribution Models: First-Touch
Self-Hosting CaliberMind AnalyticsJS
Tutorials and Use Cases
Customizing Report Visibility (Show/Hide)
How to Manage Your Offsite Events Using CaliberMind
How can I manage my BDR/SDR team activities with CaliberMind?
Combining Engagement Score with Attribution
Enabling the Sales Teams to see the Entire Buyers Journey
How Can I Identify High Risk Opportunities?
How does Sales leverage CaliberMind? Some key use cases.
Running a Sales/Pipeline Review with CaliberMind
How Is CaliberMind Different From My CRM Attribution?
CRM Campaign Member Status and Campaign Response Best Practices
How Do I Optimize Advertising Spend?
Campaign Best Practices Across Systems
How do I use CaliberMind to shorten our sales cycle?
Answering Business Questions Using CaliberMind Reports
Which of my leads are the most engaged?
Why Is CaliberMind ROAS or ROI Different Than My Ad Platform?
How Do I Know If a Campaign Is Good or Bad?
How to Flatten Your Campaign Structure in Salesforce
CaliberMind Insights
Working in CaliberMind Insights
CaliberMind Insights - Browser Requirements
CaliberMind Insights - Sharing Dashboards & User Permissions
CaliberMind Insights - Navigating to Insights/Dashboard
CaliberMind Insights - Using Dashboards
CaliberMind Insights - Dashboard Refresh Schedule
CaliberMind Insights - Application Concepts and Terminology
CaliberMind Insights - Filters & Aggregation Type
Creating a Custom Pipeline Dashboard (VIDEO)
CaliberMind Insights - Creating Custom Dashboards
How to Create a Filter Bookmark
Building Insights Dashboards
Build Your Own Insights Pipeline Dashboard
Building Formulas with Functions
Creating and Editing a Widget Formula
Using Conditional Statements
Build Insights Dashboards - Start Here!
Create Date Range Filters - Step-by-Step
Creating Formulas Based on Criteria and Conditions (Filters)
Calculated Fields
Dashboard Function Reference
Shared Formulas
Introduction to Formulas - Start Here!
Using Quick Functions
Insights Dashboards
Insights Attribution Dashboards
Insights - Attribution - Start Here!
Insights - Attribution Terminology and Key Concepts
Insights - Attribution Overview Dashboard 2.0
Insights Engagement Dashboard
Insights - Engagement - Start Here!
Insights - Engagement - Dashboard Terminology & Key Concepts
Insights - Engagement Overview
Insights - Engagement - System Account Detail
Insights - Engagement - Person Detail
Insights Engagement Dashboard - Aggregation Dates
Insights ROAS Dashboard
Insights - ROAS Dashboard Use Cases
How is CaliberMind ROAS Reporting Different than Insights ROI?
Insights - ROI - Start Here!
Insights - ROAS Terminology & Key Concepts
Insights Data Health and Integrity
Funnels
Funnel Trigger Events Dashboard
Funnel Company Inclusion Configuration
What is a Marketing Funnel?
Event Explore for Funnels
Funnel Terms and Concepts
Common Funnel Issues
Funnels FAQs Technical Documentation
Funnel Configuration
Funnel History Event Configuration
Funnels - Start Here!
What channels move journeys through a given stage?
Funnel Stages Configuration and Stage Definitions
Funnel Trend Dashboard
How can I see the number of journeys in or passing through a funnel stage during a period of time?
Sales Funnel Metrics
What touches are influencing each step in the funnel?
How do I see the first event (or "tipping point") in each stage of my funnel?
Funnel Events Technical Documentation
Marketing & Sales Funnel Foundations
Funnel Static Event Configuration
What is a Starter Funnel?
Funnel Person Inclusion Configuration
Funnel Cohort Analysis Dashboard
Sales Funnel Glossary
Where are my customers stuck in journeys?
Funnel Cohort Analysis Use Cases
Funnel Data Explore Dashboard
Use Cases for Funnels
Sales Funnel Journey Questions and Answers?
What is the difference between an Active Journey and a Journey?
How do I know the last event that happened before a journey stage change?
How do I identify stage conversion rates?
Funnel Person Status Exits
Introducing CaliberMind's Funnels
Funnels - Lead, Contact, Account, Opportunity Statuses and Stages
Pressure Event Dashboard 101
Funnel Stage Definitions
Demand Generation Funnel Dashboard
Answers
Table of Contents
- All Categories
- System Overview
- Web Tracker Installation & Settings
- Types of Analytics.js Calls
Types of Analytics.js Calls
Updated
by Chris Nixon
Types of Analytics.js Call
Analytics.js utilizes 6 different types of API calls to track users. Each call represents a distinct type of semantic information about a user and shares the same common fields.
- Identify
- Track
- Page/Screen
- Note that, while these are two separate calls, they function in a very similar way. Page calls are used for web sources while screen calls are used for mobile ones.
- Group
- Alias (CaliberMind doesn't yet support "Alias" calls.)
Identify
The identify method is used to associate behavior and to record traits about your users. The call includes a unique User ID and any option traits you know about them (email, name, role, etc.). Implementing identity is one of the first steps you should take in order to get the most out of Astronomer Clickstream. We recommend calling identify at a couple of points:
- After a user registers
- After a user logs in
- When a user updates their info
- Upon loading any pages that are accessible by a logged-in user
Here’s a sample identify snippet:analytics.identify("1205119", { "name": "Dagny Smith", "email": "dagny@astronomer.io" "plan": "enterprise" });And the resulting payload:{ "type": "identify", "traits": { "name": "Dagny Smith", "email": "dagny@astronomer.io" "plan": "enterprise", }, "userID": "1205119" }As you can see, an identify call has 2 components beyond the common fields:
Anonymous and User ID’s
For cases where you don’t actually know who the user is but you still want to be able to associate them to traits, events, or page views, you should use an Anonymous ID. The Anonymous ID can really be any pseudo-unique identifier. Feel free to use any readily available identifier or generate a new random one. UUIDs work great.
Note: Our web and mobile libraries automatically use Anonymous IDs to keep track of users. User IDs are a more permanent and consistent identifier. We recommend including them in your identify calls as often as possible. You are most likely already using a unique identifier to recognize a user in your own database - this identifier is a great UserID.Also, we recommend using something like a database ID over something like an email address or a username as they are more robust and consistent. If you want to track information like email addresses or usernames, send them through as traits instead.
Traits
In an identify call, traits are pieces of information that you know about a user. Traits can really be anything - from email addresses to age or A/B test variations. Some traits are reserved in order to be handled in special ways. These reserved traits should only be used for their intended meanings.
Track
To record any actions your users perform, along with properties that describe the action, you will want to use a track call. Each of these actions is known as an event, and each of these events has a name. Calling track is one of the first steps towards getting the most out of Analytics.js. Here’s a sample track call: analytics.track("Viewed Product", { "product": "Cat Feather Toy", "model_number": "B001BOVEU4", "price": "9.99" }); That sample call would yield the following payload:{ "type": "track", "event": "Viewed Product", "properties": { "model_number": "B001BOVEU4" "price": "9.99" } } As you can see, a track call has 2 components beyond the common fields:
Properties
Properties are extra bits of information that you can tie to the events you track and can really be anything. We recommend sending properties as often as possible to give you a more complete picture of what your users are doing. We have reserved some properties that have semantic meanings and are handled in special ways. These reserved properties should only be used for their intended meanings.
Page
The page call allows you to record whenever a user sees a page of your website, along with any optional properties you want to include about the page. Calling page or screen is one of the first steps to getting the most out of Analytics.js. Important - In the analytics.js snippet, a page call is included by default (just after the analytics.load). We do this because this method needs to be called at least once per page load. You have the option of sprucing up the call with a name or properties and can call it multiple times if you have a single-page application. Here’s a sample page call: analytics.page("Home") And, here’s the corresponding payload: { "type": "page", "name": "Home", "properties": { "title": "Astronomer: The Platform for Data Engineering", "url": "https://ww.astronomer.io" } } As you can see, a page call has 2 components beyond the common fields:
Properties
Properties are extra bits of information that you can tie to the pages you track and can really be anything. We recommend sending properties as often as possible to give you a more complete picture of what your users are doing. We have reserved some properties that have semantic meanings and are handled in special ways. These reserved properties should only be used for their intended meanings.Note: In analytics.js, we automatically send the following properties: title, path,url, referrer, and search.

Group
Use the group call when you want to associate an individual user with a group - a company, organization, account, team, etc. While a user can be in more than one group, not all platforms support multiple groups. This method also lets you record custom traits about the group. Calling group is slightly more advanced than identify, track, or page, but it’s pretty useful if you have accounts with multiple users. Here’s a sample group call: analytics.group("ak9g2hgpcf",{ "name": "Astronomer", "industry": "Technology", "employees": "48" }); And the corresponding payload:{ "type": "Group", "groupID": "ak9g2hgpcf", "traits": { "name": "Astronomer", "industry": "Technology", "employees": "48" } }As you can see, a group call has 2 components beyond the common fields:
Group ID
A Group ID is the unique identifier by which you recognize a group in your database.
Traits
Traits are extra bits of information that you can tie to the pages you track and can really be anything.We have reserved some traits to be handled in special ways. These reserved traits should only be used for their intended meanings.
Alias
The alias method is used to merge two user identities, effectively connecting two sets of user data as one. Calling alias is slightly more advanced than identify, track, or page, but it’s required to manage user identities successfully in some of our destinations. Here’s a sample alias: analytics.alias("k9jlquh2ew"); And the resulting payload:{ "type": "alias", "previousId": "dagny@astronomer.io", "userId": "k9jlquh2ew" }
Previous ID
The previous Id is the existing ID that you’ve already referred to the user. This could be an Anonymous ID that was assigned to the user or a User ID that you’ve previously identified them within identify.
User ID
The UserId string will either be the user’s new identity or an existing identity that you wish to merge with the previous Id.
Common Fields of API Calls
Every API call has a common structure. While some specific calls pass extra information, they will all pass the information detailed in this document. Note, that while the system will send all of these fields, not every destination will accept every field listed below.
General Structure
As mentioned above, there is a general structure that governs our API calls. Below is an example of this structure in raw JSON:{ "anonymousId": "exampleAnonymousId1234", "context": { "active": true, "app": { "name": "Astronomer", "version": "123", "build": "1.1.1.123", "namespace": "com.production.astronomer" }, "campaign": { "name": "Astronomer Sunday Reads", "source": "Newsletter", "medium": "email", "term": "tps reports", "content": "image link" }, "device": { "id": "exampleDeviceId", "advertisingId": "exampleAdvertisingId", "adTrackingEnabled": true, "manufacturer": "Apple", "model": "iPhone7,2", "name": "astro", "type": "ios", "token": "exampleToken" }, "ip": "1.2.3.4", "library": { "name": "analytics.js", "version": "2.11.1" }, "locale": "nl-NL", "location": { "city": "Cincinnati", "country": "United States", "latitude": 39.1031, "longitude": 84.5120, "speed": 0 }, "network": { "bluetooth": false, "carrier": "Verizon", "cellular": true, "wifi": true }, "os": { "name": "iPhone OS", "version": "8.1.3" }, "page": { "path": "/", "referrer": "", "search": "", "title": "Astronomer", "url": "https://www.astronomer.io/" }, "referrer": { "id": "exampleId", "type": "example" }, "screen": { "width": 320, "height": 568, "density": 2 }, "timezone": "America/Cincinnati", "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1" }, "integrations": { "All": true, }, "messageId": "exampleMessageId", "receivedAt": "2017-12-5T01:05:31.909Z", "sentAt": "2017-12-5T01:05:31.581Z", "type": "track", "userId": "exampleUserId", "version": 2 }Below is a chart detailing what the fields in the above sample payload mean.

Context
This section will provide other information you can gather to provide useful context about a data point. You should only use these fields for their intended meaning; they are complete and explicit specifications.

All of the fields listed in the above table can be populated, but this does not happen automatically for each one. Below is a chart that details which context fields are automatically populated. If there is no check mark, you will have to manually send these variables.
