HubSpot is a customer platform built for inbound marketing, sales, and customer service. The HubSpot API allows you to build on top of your CRM data and automate your sales and marketing processes.

Sequin syncs HubSpot to an ordered event stream you can use to easily build your CRM integration, or connect into your customer’s CRM data.

You can build directly on the Sequin stream or forward data to your database, Kafka or any other system you use to store and process data. We’ll handle the authentication, rate limit, and consistency for you.

You’ll create, update, and delete HubSpot objects (e.g. contacts, deals and accounts) using Sequin’s Collection Mutation API. Sequin simultaneously applies changes to HubSpot and the event stream. Giving you a unified interface to HubSpot.

Here is how our HubSpot sync works:

Sync process

Authentication

You can authenticate with HubSpot in the Sequin Console. You’ll click to Connect Sequin to HubSpot and Sequin will redirect you to HubSpot to authenticate.

You can also authenticate with HubSpot by importing a credential via the Management API:

curl --request POST \
  --url https://api.sequin.io/v1/credentials \
  --header 'Content-Type: application/json' \
  --data '{
    "properties": {
        "hub_domain": "Account-dev-44625669",
        "hub_id": 44000669,
        "hubspot_user": Idaho@sequin.io,
        "hubspot_user_id": 45000028,
        "kind": "hubspot",
        "refresh_token": "7eC39HqLyjWDarjtT1zdp7dc",
        "scopes": [
            "contacts",
            "automation",
            "oauth"],
        "name": "Chaom Spice"
    },
    "metadata": { "custom_property": 42 }
  }'

Backfill

When you first start a HubSpot sync, Sequin will extract all the data from the HubSpot collections you want to sync. This is called backfilling.

To backfill HubSpot, Sequin will first paginate through all the records in the collection you want to sync. This ensures that you get all the data from the HubSpot account in your stream.

We’re able to pull 100 records per request, which means about 400 records per second. Depending on the size of the HubSpot instance, the backfill can take a few minutes to a few hours.

Real-time

For standard and custom collections, we’ll continuously poll the HubSpot search API for new and updated records.

We’re able to make 4 request per second to the search API. Each request is scoped to one collection. So if you sync 12 collections, we’ll cycle through each collection every 3 seconds - meaning it will take at most 3 seconds for a change in HubSpot to appear in your stream.

HubSpot associations, however, are not available through the search API. Associations require polling the associations list endpoint from beginning to end to detect changes. We’re able to make 100 requests every 10 seconds to the associations API. So sync times vary depending on the number of associations in the HubSpot account.

Pacing

HubSpot OAuth Apps like Sequin have dedicated rate limits:

APISyncsRequest limitInterval
StandardOwners, Pipelines, Associations10010 seconds
SearchObjects (e.g. Company, Contact, custom objects)41 second

Because these limits are scoped to the OAuth application, Sequin won’t impact your existing API quota usage (whether from other OAuth apps or your own HubSpot Private app).

Schema

Standard objects

Sequin can sync all HubSpot standard objects and fields. We refer to these as standard collections.

Here are the standard collections we support. If there is a standard object you need that isn’t listed, just send us a message and we’ll add it for you in a day or two.

  • Call
  • Communication
  • Company
  • Contact
  • Deal
  • Email
  • Line item
  • Meeting
  • Note
  • Owner
  • Pipeline
  • Postal Mail
  • Product
  • Quote
  • Stage
  • Task
  • Ticket

Custom objects and properties

Sequin also supports HubSpot custom objects and properties. We refer to these as custom collections.

Any custom object or property you create in HubSpot will be available to sync with Sequin.

When you want to sync a custom property within a standard object, you’ll choose to sync the custom version of that object. For instance, if you want to sync a custom property health_score within the contact object, setup your sync to include the contact custom collection. Unlike the contact standard collection, the custom one contains all your custom properties.

Because custom collections are unique to a specific HubSpot instance and credential, you’ll need to setup your custom collections on a sync-by-sync basis. You can do this in the Sequin Console or via the Management API using the list custom collections endpoint.

Associations

HubSpot associations allow you to relate two CRM objects to eachother. For example, you can associate a contact with a company to indicate that the contact works at the company.

When you associate two objects in HubSpot, the association is undirected. When Contact A is associated with Company X, Company X is reciprocally associated with Contact A.

You can use association labels to indicate the kind of association between two objects. For example, Contact A can be a Manager at Company X and also a Former Employee at Company Y; you would associate Contact A with both companies but label the associations differently.

For any pair of object types, Sequin syncs all associations between objects of those types to a collection named after the two object types. For example, all associations between contact and company objects sync to the associations_company_contact collection.

If either object in the association is a custom object, the association collection will also be a custom collection.

Streams

Your HubSpot sync will populate data into the record and event streams. Here’s how Sequin structures HubSpot objects in the stream:

Record stream

The record stream contains the current state of an object in HubSpot. For instance, you’ll see the current state of a contact as it exists in HubSpot:

{
  "collection_id": "hubspot:contact",
  "deleted": false,
  "id": "9cacccde-f06b-476b-936f-65f37ad80921",
  "inserted_at": "2024-02-06T21:53:45.438715Z",
  "payload": {
    "hs_date_exited_lead": null,
    "hs_createdate": null,
    "hs_googleplusid": null,
    "message": null,
    "hs_avatar_filemanager_key": null,
    "engagements_last_meeting_booked_campaign": null,
    "hs_last_sales_activity_date": null,
    "hs_email_optout_41492539": null,
    "hs_emailconfirmationstatus": null,
    "ip_latlon": null,
    "gender": null,
    "hs_email_last_email_name": null,
    "ip_state": null,
    "hs_lifecyclestage_marketingqualifiedlead_date": null,
    "marital_status": null,
    "hs_content_membership_follow_up_enqueued_at": null,
    "hs_v2_cumulative_time_in_other": null,
    "company_size": null,
    "linkedinbio": null,
    "hs_date_entered_marketingqualifiedlead": null,
    "hs_v2_latest_time_in_salesqualifiedlead": null,
    "notes_last_contacted": null,
    "hs_v2_cumulative_time_in_salesqualifiedlead": null,
    "hs_calculated_mobile_number": null,
    "annualrevenue": null,
    "recent_deal_amount": null,
    "ip_zipcode": null,
    "hs_v2_latest_time_in_evangelist": null,
    "ip_state_code": null,
    "hs_all_team_ids": null,
    "address": null,
    "hs_email_optout_95234917": null,
    "hs_email_open": null,
    "hs_time_to_move_from_opportunity_to_customer": null,
    "hs_twitterid": null,
    "hs_date_exited_opportunity": null,
    "hs_v2_cumulative_time_in_lead": null,
    "hs_source_portal_id": null,
    "hs_feedback_last_nps_follow_up": null,
    "twitterhandle": null,
    "hs_email_first_reply_date": null,
    "hs_unique_creation_key": null,
    "hs_lead_status": null,
    "hs_facebookid": null,
    "hs_email_first_open_date": null,
    "hs_sequences_enrolled_count": null,
    "hs_email_quarantined": null,
    "hs_all_contact_vids": "4351",
    "hs_date_exited_subscriber": null,
    "hs_v2_date_exited_evangelist": null,
    "hs_analytics_average_page_views": "0.0",
    "school": null,
    "hs_analytics_first_touch_converting_campaign": null,
    "hs_analytics_num_page_views": "0.0",
    "owneremail": null,
    "mobilephone": null,
    "hs_email_quarantined_reason": null,
    "hs_v2_latest_time_in_customer": null,
    "hs_sales_email_last_opened": null,
    "hs_is_contact": true,
    "hs_v2_date_entered_subscriber": null,
    "salutation": null,
    "hs_analytics_first_referrer": null,
    "hs_user_ids_of_all_owners": "45873728",
    "hubspot_owner_id": "641460822",
    "hs_sa_first_engagement_descr": null,
    "hs_email_customer_quarantined_reason": null,
    "graduation_date": null,
    "hs_social_facebook_clicks": "0.0",
    "job_function": null,
    "twitterprofilephoto": null,
    "hs_time_to_move_from_lead_to_customer": null,
    "hs_email_replied": null,
    "lifecyclestage": "lead",
    "hubspot_owner_assigneddate": "2024-02-06T21:53:40.257Z",
    "recent_deal_close_date": null,
    "hs_all_assigned_business_unit_ids": null,
    "linkedinconnections": null,
    "hs_email_last_click_date": null,
    "hs_content_membership_registration_email_sent_at": null,
    "hs_v2_latest_time_in_opportunity": null,
    "hs_analytics_last_timestamp": null,
    "hs_analytics_last_url": null,
    "hs_created_by_conversations": null,
    "hs_analytics_num_visits": "0.0",
    "createdate": "2024-02-06T21:53:40.257Z",
    "hs_latest_source_data_1": "CRM_UI",
    "hs_v2_cumulative_time_in_subscriber": null,
    "hs_conversations_visitor_email": null,
    "city": null,
    "hs_social_twitter_clicks": "0.0",
    "hs_analytics_first_timestamp": "2024-02-06T21:53:40.257Z",
    "engagements_last_meeting_booked_medium": null,
    "hs_time_to_move_from_marketingqualifiedlead_to_customer": null,
    "hs_v2_date_exited_marketingqualifiedlead": null,
    "hs_count_is_unworked": "1.0",
    "hs_clicked_linkedin_ad": null,
    "hs_was_imported": null,
    "hs_count_is_worked": "0.0",
    "hs_content_membership_status": null,
    "hs_latest_subscription_create_date": null,
    "hs_language": null,
    "hs_v2_cumulative_time_in_evangelist": null,
    "hs_user_ids_of_all_notification_followers": null,
    "hs_facebook_click_id": null,
    "hs_email_last_open_date": null,
    "date_of_birth": null,
    "hs_analytics_source_data_1": "CRM_UI",
    "hs_last_sales_activity_type": null,
    "hs_date_entered_customer": null,
    "hs_first_subscription_create_date": null,
    "hs_testpurge": null,
    "hs_searchable_calculated_mobile_number": null,
    "hs_ip_timezone": null,
    "hs_created_by_user_id": "45873728.0",
    "hs_feedback_last_nps_rating": null,
    "hs_latest_sequence_ended_date": null,
    "hs_latest_open_lead_date": null,
    "hs_searchable_calculated_phone_number": null,
    "notes_last_updated": null,
    "hs_analytics_source": "OFFLINE",
    "hs_v2_date_entered_evangelist": null,
    "hs_marketable_reason_type": null,
    "hs_date_entered_lead": "2024-02-06T21:53:40.257Z",
    "hs_first_engagement_object_id": null,
    "hs_time_to_move_from_subscriber_to_customer": null,
    "hs_sales_email_last_clicked": null,
    "hs_date_entered_evangelist": null,
    "hs_lifecyclestage_salesqualifiedlead_date": null,
    "hs_user_ids_of_all_notification_unfollowers": null,
    "hs_feedback_last_survey_date": null,
    "hs_v2_date_entered_salesqualifiedlead": null,
    "days_to_close": null,
    "field_of_study": null,
    "hs_marketable_status": "false",
    "hs_date_exited_other": null,
    "hs_email_hard_bounce_reason": null,
    "hs_v2_cumulative_time_in_customer": null,
    "hs_latest_source_data_2": "userId:45873728",
    "hs_lifecyclestage_customer_date": null,
    "hs_feedback_show_nps_web_survey": null,
    "twitterbio": null,
    "hs_date_exited_evangelist": null,
    "hs_v2_date_exited_subscriber": null,
    "hs_analytics_last_referrer": null,
    "hs_date_entered_other": null,
    "hs_date_exited_salesqualifiedlead": null,
    "ip_country_code": null,
    "hs_additional_emails": null,
    "hs_email_last_reply_date": null,
    "hs_analytics_last_visit_timestamp": null,
    "hs_latest_sequence_finished_date": null,
    "hs_lastmodifieddate": null,
    "hs_content_membership_notes": null,
    "hs_data_privacy_ads_consent": null,
    "hs_predictivecontactscorebucket": null,
    "zip": null,
    "num_contacted_notes": null,
    "hs_v2_latest_time_in_other": null,
    "hs_predictivescoringtier": "tier_1",
    "phone": null,
    "website": null,
    "hs_v2_latest_time_in_marketingqualifiedlead": null,
    "hs_read_only": null,
    "hs_linkedin_ad_clicked": null,
    "hs_time_in_salesqualifiedlead": null,
    "hs_analytics_source_data_2": "userId:45873728",
    "hs_last_sales_activity_timestamp": null,
    "hs_timezone": null,
    "hs_social_google_plus_clicks": "0.0",
    "hs_time_in_evangelist": null,
    "hs_object_source_user_id": "45873728.0",
    "hs_persona": null,
    "hs_email_hard_bounce_reason_enum": null,
    "hs_email_first_click_date": null,
    "hs_time_in_opportunity": null,
    "hs_object_source": "CRM_UI",
    "hs_facebook_ad_clicked": null,
    "hs_email_sends_since_last_engagement": null,
    "hs_sa_first_engagement_object_type": null,
    "closedate": null,
    "hs_date_entered_opportunity": null,
    "hs_document_last_revisited": null,
    "hs_object_source_label": "CRM_UI",
    "military_status": null,
    "hs_time_in_customer": null,
    "hs_calculated_phone_number": null,
    "hs_v2_date_entered_opportunity": null,
    "hs_latest_sequence_enrolled_date": null,
    "hs_email_domain": "sequin.io",
    "hs_lifecyclestage_subscriber_date": null,
    "hs_social_linkedin_clicks": "0.0",
    "hs_analytics_last_touch_converting_campaign": null,
    "hs_analytics_first_url": null,
    "hs_date_exited_marketingqualifiedlead": null,
    "hs_latest_source_timestamp": "2024-02-06T21:53:40.389Z",
    "lastname": "Idaho",
    "hs_calculated_form_submissions": null,
    "hs_v2_date_exited_opportunity": null,
    "hs_linkedinid": null,
    "hs_pipeline": "contacts-lifecycle-pipeline",
    "associatedcompanylastupdated": null,
    "hs_searchable_calculated_international_mobile_number": null,
    "hs_content_membership_registered_at": null,
    "hs_legal_basis": null,
    "first_conversion_event_name": null,
    "hs_v2_date_exited_customer": null,
    "hs_calculated_phone_number_country_code": null,
    "start_date": null,
    "hs_latest_meeting_activity": null,
    "hs_v2_date_entered_customer": null,
    "hs_v2_date_exited_salesqualifiedlead": null,
    "hs_sequences_is_enrolled": null,
    "notes_next_activity_date": null,
    "hs_v2_latest_time_in_lead": null,
    "num_notes": null,
    "engagements_last_meeting_booked": null,
    "hs_v2_date_entered_other": null,
    "hs_email_last_send_date": null,
    "hs_email_first_send_date": null,
    "currentlyinworkflow": null,
    "hs_calculated_phone_number_area_code": null,
    "hs_latest_source": "OFFLINE",
    "hs_sales_email_last_replied": null,
    "hs_sequences_actively_enrolled_count": "0.0",
    "industry": null,
    "hs_time_between_contact_creation_and_deal_creation": null,
    "recent_conversion_date": null,
    "hs_latest_sequence_enrolled": null,
    "hs_latest_sequence_unenrolled_date": null,
    "country": null,
    "hs_google_click_id": null,
    "hs_marketable_reason_id": null,
    "num_conversion_events": "0.0",
    "hs_analytics_revenue": "0.0",
    "hs_lifecyclestage_lead_date": "2024-02-06T21:53:40.257Z",
    "hs_content_membership_registration_domain_sent_to": null,
    "hs_analytics_first_visit_timestamp": null,
    "hs_v2_date_exited_lead": null,
    "hs_date_entered_subscriber": null,
    "numemployees": null,
    "relationship_status": null,
    "work_email": null,
    "company": null,
    "first_deal_created_date": null,
    "hs_v2_cumulative_time_in_marketingqualifiedlead": null,
    "hs_lifecyclestage_opportunity_date": null,
    "hs_email_bounce": null,
    "fax": null,
    "hs_email_is_ineligible": null,
    "hs_buying_role": null,
    "email": "idaho@sequin.io",
    "hs_testrollback": null,
    "engagements_last_meeting_booked_source": null,
    "hs_date_exited_customer": null,
    "hs_sa_first_engagement_date": null,
    "hs_v2_latest_time_in_subscriber": null,
    "hs_time_in_marketingqualifiedlead": null,
    "hs_v2_date_exited_other": null,
    "hs_whatsapp_phone_number": null,
    "hubspotscore": null,
    "hs_lifecyclestage_other_date": null,
    "ownername": null,
    "hs_all_owner_ids": "641460822",
    "seniority": null,
    "degree": null,
    "associatedcompanyid": null,
    "hs_time_in_other": null,
    "hs_calculated_phone_number_region_code": null,
    "hs_pinned_engagement_id": null,
    "hs_date_entered_salesqualifiedlead": null,
    "hs_email_delivered": null,
    "hs_updated_by_user_id": "45873728.0",
    "hs_object_source_id": "userId:45873728",
    "hs_email_recipient_fatigue_recovery_time": null,
    "hs_time_between_contact_creation_and_deal_close": null,
    "hs_predictivecontactscore_v2": "1.17",
    "hs_time_in_lead": "258364.0",
    "hs_has_active_subscription": null,
    "hs_predictivecontactscore": null,
    "webinareventlastupdated": null,
    "hs_source_object_id": null,
    "num_unique_conversion_events": "0.0",
    "hs_lifecyclestage_evangelist_date": null,
    "hs_merged_object_ids": null,
    "hs_email_click": null,
    "total_revenue": null,
    "first_conversion_date": null,
    "hs_object_id": "4351.0",
    "hs_v2_cumulative_time_in_opportunity": null,
    "firstname": "Duncan",
    "surveymonkeyeventlastupdated": null,
    "hs_social_num_broadcast_clicks": "0.0",
    "hubspot_team_id": null,
    "recent_conversion_event_name": null,
    "lastmodifieddate": "2024-02-06T21:54:28.801Z",
    "hs_email_optout": null,
    "hs_calculated_merged_vids": null,
    "kloutscoregeneral": null,
    "hs_email_bad_address": null,
    "hs_time_in_subscriber": null,
    "num_associated_deals": null,
    "jobtitle": "Boss",
    "hs_v2_date_entered_marketingqualifiedlead": null,
    "hs_content_membership_email": null,
    "hs_social_last_engagement": null,
    "hs_searchable_calculated_international_phone_number": null,
    "hs_latest_disqualified_lead_date": null,
    "hs_is_unworked": true,
    "ip_city": null,
    "hs_all_accessible_team_ids": null,
    "hs_marketable_until_renewal": "false",
    "hs_latest_qualified_lead_date": null,
    "hs_first_outreach_date": null,
    "hs_content_membership_email_confirmed": null,
    "hs_analytics_num_event_completions": "0.0",
    "hs_time_to_first_engagement": null,
    "state": null,
    "hs_time_to_move_from_salesqualifiedlead_to_customer": null,
    "ip_country": null,
    "followercount": null,
    "hs_v2_date_entered_lead": "2024-02-06T21:53:40.257Z",
    "photo": null
  },
  "payload_hash": "1IU1yevTy92ZUbx2XaBu0w==",
  "resource_id": "fb32a98d-9221-4d19-b984-0a97e53349ce",
  "updated_at": "2024-02-06T21:57:58.665566Z",
  "upsert_opts": null,
  "upstream_id": "4351",
  "upstream_updated_at": "2024-02-06T21:54:28.801000Z"
}

Event stream

The event stream contains the changes to an object in HubSpot. As an example, if the firstname and lastname of a contact object is updated, the event stream will contain the following event:

{
  "changes": {
    "firstname": "Duncan",
    "hs_time_in_lead": "431585.0",
    "lastmodifieddate": "2024-02-06T21:54:28.801Z",
    "lastname": "Idaho"
  },
  "collection_id": "hubspot:contact",
  "created_at": "2024-02-06T22:00:52.662810Z",
  "data": {
    "hs_date_exited_lead": null,
    "hs_createdate": null,
    "hs_googleplusid": null,
    "message": null,
    "hs_avatar_filemanager_key": null,
    "engagements_last_meeting_booked_campaign": null,
    "hs_last_sales_activity_date": null,
    "hs_email_optout_41492539": null,
    "hs_emailconfirmationstatus": null,
    "ip_latlon": null,
    "gender": null,
    "hs_email_last_email_name": null,
    "ip_state": null,
    "hs_lifecyclestage_marketingqualifiedlead_date": null,
    "marital_status": null,
    "hs_content_membership_follow_up_enqueued_at": null,
    "hs_v2_cumulative_time_in_other": null,
    "company_size": null,
    "linkedinbio": null,
    "hs_date_entered_marketingqualifiedlead": null,
    "hs_v2_latest_time_in_salesqualifiedlead": null,
    "notes_last_contacted": null,
    "hs_v2_cumulative_time_in_salesqualifiedlead": null,
    "hs_calculated_mobile_number": null,
    "annualrevenue": null,
    "recent_deal_amount": null,
    "ip_zipcode": null,
    "hs_v2_latest_time_in_evangelist": null,
    "ip_state_code": null,
    "hs_all_team_ids": null,
    "address": null,
    "hs_email_optout_95234917": null,
    "hs_email_open": null,
    "hs_time_to_move_from_opportunity_to_customer": null,
    "hs_twitterid": null,
    "hs_date_exited_opportunity": null,
    "hs_v2_cumulative_time_in_lead": null,
    "hs_source_portal_id": null,
    "hs_feedback_last_nps_follow_up": null,
    "twitterhandle": null,
    "hs_email_first_reply_date": null,
    "hs_unique_creation_key": null,
    "hs_lead_status": null,
    "hs_facebookid": null,
    "hs_email_first_open_date": null,
    "hs_sequences_enrolled_count": null,
    "hs_email_quarantined": null,
    "hs_all_contact_vids": "4351",
    "hs_date_exited_subscriber": null,
    "hs_v2_date_exited_evangelist": null,
    "hs_analytics_average_page_views": "0.0",
    "school": null,
    "hs_analytics_first_touch_converting_campaign": null,
    "hs_analytics_num_page_views": "0.0",
    "owneremail": null,
    "mobilephone": null,
    "hs_email_quarantined_reason": null,
    "hs_v2_latest_time_in_customer": null,
    "hs_sales_email_last_opened": null,
    "hs_is_contact": true,
    "hs_v2_date_entered_subscriber": null,
    "salutation": null,
    "hs_analytics_first_referrer": null,
    "hs_user_ids_of_all_owners": "45873728",
    "hubspot_owner_id": "641460822",
    "hs_sa_first_engagement_descr": null,
    "hs_email_customer_quarantined_reason": null,
    "graduation_date": null,
    "hs_social_facebook_clicks": "0.0",
    "job_function": null,
    "twitterprofilephoto": null,
    "hs_time_to_move_from_lead_to_customer": null,
    "hs_email_replied": null,
    "lifecyclestage": "lead",
    "hubspot_owner_assigneddate": "2024-02-06T21:53:40.257Z",
    "recent_deal_close_date": null,
    "hs_all_assigned_business_unit_ids": null,
    "linkedinconnections": null,
    "hs_email_last_click_date": null,
    "hs_content_membership_registration_email_sent_at": null,
    "hs_v2_latest_time_in_opportunity": null,
    "hs_analytics_last_timestamp": null,
    "hs_analytics_last_url": null,
    "hs_created_by_conversations": null,
    "hs_analytics_num_visits": "0.0",
    "createdate": "2024-02-06T21:53:40.257Z",
    "hs_latest_source_data_1": "CRM_UI",
    "hs_v2_cumulative_time_in_subscriber": null,
    "hs_conversations_visitor_email": null,
    "city": null,
    "hs_social_twitter_clicks": "0.0",
    "hs_analytics_first_timestamp": "2024-02-06T21:53:40.257Z",
    "engagements_last_meeting_booked_medium": null,
    "hs_time_to_move_from_marketingqualifiedlead_to_customer": null,
    "hs_v2_date_exited_marketingqualifiedlead": null,
    "hs_count_is_unworked": "1.0",
    "hs_clicked_linkedin_ad": null,
    "hs_was_imported": null,
    "hs_count_is_worked": "0.0",
    "hs_content_membership_status": null,
    "hs_latest_subscription_create_date": null,
    "hs_language": null,
    "hs_v2_cumulative_time_in_evangelist": null,
    "hs_user_ids_of_all_notification_followers": null,
    "hs_facebook_click_id": null,
    "hs_email_last_open_date": null,
    "date_of_birth": null,
    "hs_analytics_source_data_1": "CRM_UI",
    "hs_last_sales_activity_type": null,
    "hs_date_entered_customer": null,
    "hs_first_subscription_create_date": null,
    "hs_testpurge": null,
    "hs_searchable_calculated_mobile_number": null,
    "hs_ip_timezone": null,
    "hs_created_by_user_id": "45873728.0",
    "hs_feedback_last_nps_rating": null,
    "hs_latest_sequence_ended_date": null,
    "hs_latest_open_lead_date": null,
    "hs_searchable_calculated_phone_number": null,
    "notes_last_updated": null,
    "hs_analytics_source": "OFFLINE",
    "hs_v2_date_entered_evangelist": null,
    "hs_marketable_reason_type": null,
    "hs_date_entered_lead": "2024-02-06T21:53:40.257Z",
    "hs_first_engagement_object_id": null,
    "hs_time_to_move_from_subscriber_to_customer": null,
    "hs_sales_email_last_clicked": null,
    "hs_date_entered_evangelist": null,
    "hs_lifecyclestage_salesqualifiedlead_date": null,
    "hs_user_ids_of_all_notification_unfollowers": null,
    "hs_feedback_last_survey_date": null,
    "hs_v2_date_entered_salesqualifiedlead": null,
    "days_to_close": null,
    "field_of_study": null,
    "hs_marketable_status": "false",
    "hs_date_exited_other": null,
    "hs_email_hard_bounce_reason": null,
    "hs_v2_cumulative_time_in_customer": null,
    "hs_latest_source_data_2": "userId:45873728",
    "hs_lifecyclestage_customer_date": null,
    "hs_feedback_show_nps_web_survey": null,
    "twitterbio": null,
    "hs_date_exited_evangelist": null,
    "hs_v2_date_exited_subscriber": null,
    "hs_analytics_last_referrer": null,
    "hs_date_entered_other": null,
    "hs_date_exited_salesqualifiedlead": null,
    "ip_country_code": null,
    "hs_additional_emails": null,
    "hs_email_last_reply_date": null,
    "hs_analytics_last_visit_timestamp": null,
    "hs_latest_sequence_finished_date": null,
    "hs_lastmodifieddate": null,
    "hs_content_membership_notes": null,
    "hs_data_privacy_ads_consent": null,
    "hs_predictivecontactscorebucket": null,
    "zip": null,
    "num_contacted_notes": null,
    "hs_v2_latest_time_in_other": null,
    "hs_predictivescoringtier": "tier_1",
    "phone": null,
    "website": null,
    "hs_v2_latest_time_in_marketingqualifiedlead": null,
    "hs_read_only": null,
    "hs_linkedin_ad_clicked": null,
    "hs_time_in_salesqualifiedlead": null,
    "hs_analytics_source_data_2": "userId:45873728",
    "hs_last_sales_activity_timestamp": null,
    "hs_timezone": null,
    "hs_social_google_plus_clicks": "0.0",
    "hs_time_in_evangelist": null,
    "hs_object_source_user_id": "45873728.0",
    "hs_persona": null,
    "hs_email_hard_bounce_reason_enum": null,
    "hs_email_first_click_date": null,
    "hs_time_in_opportunity": null,
    "hs_object_source": "CRM_UI",
    "hs_facebook_ad_clicked": null,
    "hs_email_sends_since_last_engagement": null,
    "hs_sa_first_engagement_object_type": null,
    "closedate": null,
    "hs_date_entered_opportunity": null,
    "hs_document_last_revisited": null,
    "hs_object_source_label": "CRM_UI",
    "military_status": null,
    "hs_time_in_customer": null,
    "hs_calculated_phone_number": null,
    "hs_v2_date_entered_opportunity": null,
    "hs_latest_sequence_enrolled_date": null,
    "hs_email_domain": "sequin.io",
    "hs_lifecyclestage_subscriber_date": null,
    "hs_social_linkedin_clicks": "0.0",
    "hs_analytics_last_touch_converting_campaign": null,
    "hs_analytics_first_url": null,
    "hs_date_exited_marketingqualifiedlead": null,
    "hs_latest_source_timestamp": "2024-02-06T21:53:40.389Z",
    "lastname": "Atreides",
    "hs_calculated_form_submissions": null,
    "hs_v2_date_exited_opportunity": null,
    "hs_linkedinid": null,
    "hs_pipeline": "contacts-lifecycle-pipeline",
    "associatedcompanylastupdated": null,
    "hs_searchable_calculated_international_mobile_number": null,
    "hs_content_membership_registered_at": null,
    "hs_legal_basis": null,
    "first_conversion_event_name": null,
    "hs_v2_date_exited_customer": null,
    "hs_calculated_phone_number_country_code": null,
    "start_date": null,
    "hs_latest_meeting_activity": null,
    "hs_v2_date_entered_customer": null,
    "hs_v2_date_exited_salesqualifiedlead": null,
    "hs_sequences_is_enrolled": null,
    "notes_next_activity_date": null,
    "hs_v2_latest_time_in_lead": null,
    "num_notes": null,
    "engagements_last_meeting_booked": null,
    "hs_v2_date_entered_other": null,
    "hs_email_last_send_date": null,
    "hs_email_first_send_date": null,
    "currentlyinworkflow": null,
    "hs_calculated_phone_number_area_code": null,
    "hs_latest_source": "OFFLINE",
    "hs_sales_email_last_replied": null,
    "hs_sequences_actively_enrolled_count": "0.0",
    "industry": null,
    "hs_time_between_contact_creation_and_deal_creation": null,
    "recent_conversion_date": null,
    "hs_latest_sequence_enrolled": null,
    "hs_latest_sequence_unenrolled_date": null,
    "country": null,
    "hs_google_click_id": null,
    "hs_marketable_reason_id": null,
    "num_conversion_events": "0.0",
    "hs_analytics_revenue": "0.0",
    "hs_lifecyclestage_lead_date": "2024-02-06T21:53:40.257Z",
    "hs_content_membership_registration_domain_sent_to": null,
    "hs_analytics_first_visit_timestamp": null,
    "hs_v2_date_exited_lead": null,
    "hs_date_entered_subscriber": null,
    "numemployees": null,
    "relationship_status": null,
    "work_email": null,
    "company": null,
    "first_deal_created_date": null,
    "hs_v2_cumulative_time_in_marketingqualifiedlead": null,
    "hs_lifecyclestage_opportunity_date": null,
    "hs_email_bounce": null,
    "fax": null,
    "hs_email_is_ineligible": null,
    "hs_buying_role": null,
    "email": "idaho@sequin.io",
    "hs_testrollback": null,
    "engagements_last_meeting_booked_source": null,
    "hs_date_exited_customer": null,
    "hs_sa_first_engagement_date": null,
    "hs_v2_latest_time_in_subscriber": null,
    "hs_time_in_marketingqualifiedlead": null,
    "hs_v2_date_exited_other": null,
    "hs_whatsapp_phone_number": null,
    "hubspotscore": null,
    "hs_lifecyclestage_other_date": null,
    "ownername": null,
    "hs_all_owner_ids": "641460822",
    "seniority": null,
    "degree": null,
    "associatedcompanyid": null,
    "hs_time_in_other": null,
    "hs_calculated_phone_number_region_code": null,
    "hs_pinned_engagement_id": null,
    "hs_date_entered_salesqualifiedlead": null,
    "hs_email_delivered": null,
    "hs_updated_by_user_id": "45873728.0",
    "hs_object_source_id": "userId:45873728",
    "hs_email_recipient_fatigue_recovery_time": null,
    "hs_time_between_contact_creation_and_deal_close": null,
    "hs_predictivecontactscore_v2": "1.17",
    "hs_time_in_lead": "432338.0",
    "hs_has_active_subscription": null,
    "hs_predictivecontactscore": null,
    "webinareventlastupdated": null,
    "hs_source_object_id": null,
    "num_unique_conversion_events": "0.0",
    "hs_lifecyclestage_evangelist_date": null,
    "hs_merged_object_ids": null,
    "hs_email_click": null,
    "total_revenue": null,
    "first_conversion_date": null,
    "hs_object_id": "4351.0",
    "hs_v2_cumulative_time_in_opportunity": null,
    "firstname": "Paul",
    "surveymonkeyeventlastupdated": null,
    "hs_social_num_broadcast_clicks": "0.0",
    "hubspot_team_id": null,
    "recent_conversion_event_name": null,
    "lastmodifieddate": "2024-02-06T22:00:52.021Z",
    "hs_email_optout": null,
    "hs_calculated_merged_vids": null,
    "kloutscoregeneral": null,
    "hs_email_bad_address": null,
    "hs_time_in_subscriber": null,
    "num_associated_deals": null,
    "jobtitle": "Boss",
    "hs_v2_date_entered_marketingqualifiedlead": null,
    "hs_content_membership_email": null,
    "hs_social_last_engagement": null,
    "hs_searchable_calculated_international_phone_number": null,
    "hs_latest_disqualified_lead_date": null,
    "hs_is_unworked": true,
    "ip_city": null,
    "hs_all_accessible_team_ids": null,
    "hs_marketable_until_renewal": "false",
    "hs_latest_qualified_lead_date": null,
    "hs_first_outreach_date": null,
    "hs_content_membership_email_confirmed": null,
    "hs_analytics_num_event_completions": "0.0",
    "hs_time_to_first_engagement": null,
    "state": null,
    "hs_time_to_move_from_salesqualifiedlead_to_customer": null,
    "ip_country": null,
    "followercount": null,
    "hs_v2_date_entered_lead": "2024-02-06T21:53:40.257Z",
    "photo": null
  },
  "event_type": "updated",
  "id": "d147e513-c956-4287-8aa7-1420f933470c",
  "resource_id": "fb32a98d-9221-4d19-b984-0a97e53349ce",
  "upstream_id": "4351",
  "upstream_updated_at": "2024-02-06T22:00:52.021000Z"
}

Consumers

You can build directly on Sequin’s stream using the stream APIs. Or forward data to your database, Kafka or any other system you use to store and process data.

HubSpot syncs work with all the consumers Sequin supports.

Mutations

When you need to create, update, or delete a HubSpot object, you can use Sequin’s Collection Mutation API. For instance, if you want to create a contact in HubSpot, you’ll use the create mutation:

curl -X POST \
  https://api.sequin.io/v1/mutations/run/create \
  -H 'content-type: application/json' \
  -d '{
        "sync_id": "my-sync-id",
        "collection_id": "hubspot:contact",
        "data": [
          {
            "firstname": "Paul",
            "lastname": "Atreides"
          }
        ]
      }'

Sequin will handle the authentication, rate limit, and consistency for the request by simultaneously applying changes to HubSpot and the event stream. As an added consistency guarantee, you can also specify which consumers you want to await before returning the mutation response.

For instance, you can ensure that a new contact has been added to your database before the the API returns a 200 OK.

Development

Sequin works with HubSpot’s development tools so you can easily test your integration before moving it to production.

HubSpot provides two types of development environments:

  1. Developer test accounts: These are free HubSpot accounts that you can use to build and test your integration. You’ll need to manually replicate your production data model in your test account.
  2. Sandboxes: These are full copies of your production HubSpot account purpose built for replicating your production data for testing and development. However, only HubSpot enterprise accounts have access to sandboxes, and they require super admin permissions.

Both developer accounts and sandboxes appear when you authenticate with HubSpot.

Once you’ve tested your integration, you can use the Management API to easily replicate your sync to your production account.