Offline Sources: Why are some contacts "API" vs "ANALYTICS"?

Hello!

We use Segment’s analytics.js to identify users in our app after they sign up:

analytics.identify(userId, {
 "id": userId,
 "email": email,
});

We also emit Segment events as users perform actions in our app.

Segment is setup to integrate with HubSpot.

Contacts in HubSpot then show up with Original Sources like “Social media”, “Organic search”, “Referrals”, “Direct traffic”, etc.

Some contacts show up in HubSpot with an Original Source of “Offline Sources”, and looking at “Original source drill-down 1” some have a value of “API” while others have “ANALYTICS”.

I’m trying to understand why some contacts are “API” and others are “ANALYTICS”.

According to https://knowledge.hubspot.com/articles/kcs_article/reports/how-were-contacts-added-to-hubspot-from-an-offline-source :

  • API means “the contact was created directly using HubSpot’s Contacts API”
  • ANALYTICS means “the contact was created when a non-HubSpot form is used on an external page. This usually occurs when a custom event is triggered using the events tool (Enterprise only), or when the visitor fills in the non-HubSpot form on a Wordpress page with the HubSpot tracking code or the HubSpot Wordpress plugin installed”

But we’re not using HubSpot’s Contacts API directly, we’re using Segment’s `analytics.identify` and emitting Segment events.

Could anyone provide more details on why some of our contacts are API vs ANALYTICS?

Thanks!

Welcome, @justinvp.

Happy to clarify! The answer is more complicated than what is described in this article:

  • The Original Source value “Offline Sources” and the Original source drill-down 1 value “API” does indeed indicate the Contacts API was used, but it doesn’t mean that you or another user in your account directly interacted with a HubSpot endpoint. Rather, it just means that the request was authenticated with your account’s API key. I see here that you have an active API key. I suspect Segment asked you for such a key and is using it to authenticate the events behind the contacts showing “Offline Sources” > “API.”
  • In this context, the “Analytics” source indicates that HubSpot’s Identify a visitor function was behind the change. I know from past experience that Segment’s analytics.identify function communicates directly with this HubSpot Tracking Code API function.

Please let me know if you have additional questions on this topic!