Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

OverviewGetting startedWhat is Saasco?

SDK

Quick startTrackingIdentifyConfigurationWidgetsProperties

MCP

Quick startHow it worksAuthorizationTool reference

REST API

Quick start

Properties

The $-prefixed keys Saasco fills in on contacts and events, and the reserved names you set yourself.

Keys that begin with $ are system-managed. Saasco writes them; don't set them in identify() or pass them as event properties, and avoid a leading $ in your own names so nothing collides.

The reserved names you set (email, name, revenue and friends) are documented with the calls that use them: contact properties under Identify, revenue properties under Tracking.

Default event properties

The SDK attaches browser context to every client-side event. Geo, device, OS, browser and bot fields are added by the ingest pipeline from the IP and user agent rather than the browser.

UTM and ad-id fields are session-sticky: the first non-empty value of the session is kept and later navigations don't overwrite it. Referrer is the last cross-domain referrer of the session.

PropertyDisplay nameDescription
$hrefCurrent URLURL of the page the event was tracked on.
$pathnamePathnamePath of that page.
$titlePage TitleTitle of that page.
$locationLocationTimezone-derived location hint.
$localeLocalePreferred language of the user.
$userAgentUser AgentBrowser user agent string.
$screenWidthScreen WidthDevice screen width in pixels.
$screenHeightScreen HeightDevice screen height in pixels.
$screenDPIScreen DPIPixel density of the screen.
$referrerLast Touch ReferrerLast cross-domain document.referrer this session. Shown as "direct" if empty.
$referringDomainLast Touch Referring DomainHostname of that referrer.
$utmSourceUTM SourceFirst utm_source of the session.
$utmMediumUTM MediumFirst utm_medium of the session.
$utmCampaignUTM CampaignFirst utm_campaign of the session.
$utmTermUTM TermFirst utm_term of the session.
$utmContentUTM ContentFirst utm_content of the session.
$utmIdUTM IDFirst utm_id of the session.
$utmCampaignIdUTM Campaign IDFirst utm_campaign_id of the session.
$utmSourcePlatformUTM Source PlatformFirst utm_source_platform of the session.
$utmCreativeFormatUTM Creative FormatFirst utm_creative_format of the session.
$utmMarketingTacticUTM Marketing TacticFirst utm_marketing_tactic of the session.
$utmAdIdAd IDFirst utm_ad_id or network-specific ad id (fbadid, gadid, ttadid, …).
$utmAdSourceAd SourceFirst utm_ad_source, or the network inferred from the ad-id parameter.
$osOperating SystemParsed from the user agent at ingest.
$browserBrowserParsed from the user agent at ingest.
$browserVersionBrowser VersionParsed from the user agent at ingest.
$deviceDevice TypeMobile, Tablet or Desktop.
$ipIP AddressClient IP from the ingest request.
$cityCityCity resolved from the IP.
$countryCountryISO country code from the IP.
$continentContinentContinent from the IP.
$regionRegionState or province from the IP.
$latitudeLatitudeLatitude of the IP location.
$longitudeLongitudeLongitude of the IP location.
$timezoneTimezoneTimezone resolved from the IP.
$isBotBottrue when ingest classifies the user agent as a crawler.

Default contact properties

Collected automatically on every contact. Most are read-only; some geo fields can be edited in the CRM.

Identity and lifecycle

PropertyDisplay nameDescription
$idDistinct IDYour application's identifier, coerced to a string.
$lastSeenLast SeenLast activity timestamp.
$lastIdentifiedAtLast IdentifiedTimestamp of the most recent identify() call.
$processedAtProcessed AtWhen the most recent event was processed.

Email health

PropertyDisplay nameDescription
$subscribedSubscribedEmail subscription status.
$unsubscribedUnsubscribedEmail unsubscription status.
$unsubscribeReasonUnsubscribe ReasonWhy they were unsubscribed (complained, bounced, …).
$unsubscribeSourceUnsubscribe SourceWhere the unsubscribe came from.
$emailValidatedEmail ValidatedWhether the address has been validated.
$lastEmailValidatedAtLast Email Validated AtTimestamp of the last validation.
$emailValidationResultEmail Validation ResultInvalid, Risky, Safe to Send or Unknown.
$emailScoreEmail ScoreEngagement score from open/click history, with time decay.

Session context

Taken from the contact's most recent session: $os, $browser, $browserVersion, $device, $screenWidth, $screenHeight, $screenDpi, $userAgent, $ip, $timezone, $city, $country, $countryCode, $continent, $region, $locale, $latitude, $longitude.

Attribution

Last-touch and first-touch are both kept, so you can attribute a signup to the campaign that closed it and the one that found them.

Last touchFirst touch
$referrer$initialReferrer
$referringDomain$initialReferringDomain
$utmSource$initialUtmSource
$utmMedium$initialUtmMedium
$utmCampaign$initialUtmCampaign
$utmTerm$initialUtmTerm
$utmContent$initialUtmContent

An empty referrer means there wasn't one; the CRM may display that as "direct".

Integrations

PropertyDisplay nameDescription
$stripeCustomerIdStripe Customer IDStripe customer id associated with this contact.

Widgets

The AI support widget and social-proof notifications, both from the same install.

Quick start

Connect Cursor, Claude, Codex or another agent to your Saasco account.

On this page

Default event propertiesDefault contact propertiesIdentity and lifecycleEmail healthSession contextAttributionIntegrations