What Is Mesh

The Mesh API allows applications to fetch and query data from multiple SaaS services through a single interface.

Mesh synchronizes data from multiple SaaS services (Salesforce, Stripe, Zendesk etc) and is able to associate and deduplicate records in order to build what we call a Resolved Object Graph. This allows applications to query a single data set that is comprised of data from multiple different services. It also helps developers avoid building multiple integrations to achieve the same result.

Mesh handles the difficult aspects of integrating with SaaS APIs like managing authentication, conforming to rate limits, and parsing absurd JSON, so that your application doesn't have to. It presents uniform query semantics, predictable URL structures and intuitive JSON objects that make it simple and easy to integrate SaaS customer data into your application.

The Mesh API is served over HTTPS to ensure data privacy. Requests support standard HTTP methods like GET, PUT, POST, and DELETE and standard status codes.

Supported Providers

Provider Supported Resources Authentication
Salesforce lead, account OAuth
HubSpot company, contact, list OAuth
Zendesk user, organization, ticket OAuth
Intercom user, company, conversation, tag API Key
SendGrid recipient, list API Key
Gmail thread OAuth
MailChimp member, list OAuth
Stripe customer, charge, plan, subscription OAuth
Shopify customer, order OAuth


Mesh models are composed of the common fields that exist in corresponding models for the provider APIs. They are also stripped of non-pertinent fields that are meaningless outside of the context of the original SaaS application.

The models and their description can be found in the table below.

Model Description
User Maps to objects modeling a user. Users have a type field which describes the original user model (Lead, Contact etc).
Organization Maps to objects modeling an organization.
Thread Maps to objects modeling any form of communication between an organization and a customer. Threads have a type field which describe the its original form of communication (email, ticket, conversation).
Transaction Maps to objects modeling a one time payment in exchange for goods or services.
Plan Maps to objects modeling a payment plan for a subscription service.
List Maps to objects modeling a list or cohort of objects.

How It Works

Mesh maintains integrations with many of the most popular SaaS applications and is able to fetch, normalize, and associate customer data from these disparate sources. Mesh is then able to generate a resolved object graph.

In order to synchronize data from a SaaS API, the integration must first be "activated". This is done by supplying authentication credentials in the Mesh dashboard. Once an integration is activated, Mesh will synchronize and process all data from the integration.

A simple example might include synchronization of the following:

  1. An organization record from Hubspot with the name Google.
  2. A lead record from Salesforce with the email and the organization_name Google.
  3. A ticket record from Zendesk with the email
  4. A transaction record from Stripe with the email

Upon sync, Mesh will perform the following:

  1. Create an Mesh organization record for the Hubspot organization,
  2. Create a Mesh user record for the Salesforce lead and associate the user with the organization.
  3. Create a Mesh thread record for the Zendesk ticket and associate the thread with the user.
  4. Create a Mesh transaction record for the Stripe transaction and associate the transaction with the user.

Applications are then able to make requests against the resolved object graph:

  1. Issue a GET request for users associated with an organization.
  2. Issue a GET request for transactions associated with a Mesh user or Mesh organization.
  3. Issue a GET request for threads associated with a Mesh user or Mesh organization.


The Mesh service is able to deduplicate User and Organization records from different data sources. For example, Mesh is able to recognize that a lead from Salesforce with the email represents the same real world person as a contact from Hubspot with the same email. The Mesh service will combine both of these records into a single user record. This eliminates the need for integrating applications to resolve the two users in their application's logic. It also allows applications to request associated resource of a single user, as opposed to multiple.

Provider Data

Mesh objects do not accommodate every field that is present in the object models of the provider APIs. To account for this, all Mesh objects have a generic provider_data field whose value contains a map with data specific to each integration. This data might include identifiers, dates, urls, custom fields, or platform specific information. All data within the Map is namespaced by the origin provider's name.

    "provider_data" {
        "salesforce": {
            "created_at": 1468518030000,
            "id": "00Q3600000DXqRCEA1",
            "organization_name": "Mesh, Inc.",
            "updated_at": 1468518030000,
            "url": ""
        "hubspot": {
            "created_at": 1468518030000,
            "id": 169551,
            "updated_at": 1468518141247,
            "url": ""

results matching ""

    No results matching ""