Skip to main content
The payload structure depends on your destination type:
  • Webhook destinations: Payloads include notificationType and data fields.
  • Kinesis destinations: Payloads contain the data object. The notificationType is included in the event metadata.
You can find the OpenAPI spec for notification payloads on GitHub, or refer to the examples below:
Some payloads may include a config field nested within the data field. This config contains the complete installation configuration, including read, write, subscribe, and proxy settings. The installation.updated event also includes an additional lastConfig field representing the previous configuration. If the configuration object is too large to include inline, we will generate a signed URL you can use to fetch full configuration via GET request as a JSON file.
{
  "notificationType": "installation.updated",
  "data": {
    ...,
    "config": { //If the config content is too large, the config field will be empty and you can retrieve the content from the URL provided in `configURL`.
      "read": {
        "objects": {
          "account": {
            "objectName": "account",
            "destination": "my-webhook",
            "requiredFields": [...],
            "optionalFields": [...]
          }
        }
      }
    },
    // "configURL": "https://example.com/config.json" // If the config content is too large to deliver directly, we will provide a signed URL where you can download the content as a JSON file.
    "lastConfig": { // Only for `installation.updated` notifications. If the config is too large, it will be omitted and the content will be available in `lastConfigURL`.
      "read": {
        "objects": {
          "account": {
            "objectName": "account",
            "destination": "my-old-webhook",
            "requiredFields": [...],
            "optionalFields": [...]
          }
        }
      }
    }
    // "lastConfigURL": "https://example.com/lastconfig.json"
  }
}
Webhook destination payload:
{
  "notificationType": "installation.created",
  "data": {
    "projectId": "uuid",
    "provider": "salesforce",
    "integrationId": "uuid",
    "integrationName": "Salesforce Integration",
    "installationId": "uuid",
    "connectionId": "uuid",
    "groupRef": "customer-group-ref",
    "groupName": "Customer Name",
    "consumerRef": "user-123",
    "consumerName": "John Doe",
    "config": { //If the config content is too large, the config field will be empty and you can retrieve the content from the URL provided in `configURL`.
      "read": {
        "objects": {
          "account": {
            "objectName": "account",
            "destination": "my-webhook",
            "requiredFields": [...],
            "optionalFields": [...]
          }
        }
      }
    },
    "lastConfig": { // Only for `installation.updated` notifications. If the config is too large, it will be omitted and the content will be available in `lastConfigURL`.
      "read": {
        "objects": {
          "account": {
            "objectName": "account",
            "destination": "my-old-webhook",
            "requiredFields": [...],
            "optionalFields": [...]
          }
        }
      }
    }
    // "lastConfigURL": "https://example.com/lastconfig.json"
  }
}
Kinesis destination payload:
{
  "projectId": "uuid",
  "provider": "salesforce",
  "integrationId": "uuid",
  "integrationName": "Salesforce Integration",
  "installationId": "uuid",
  "groupRef": "customer-group-ref",
  "groupName": "Customer Name",
  "consumerRef": "user-123",
  "consumerName": "John Doe",
  "config": {
    "read": {
      "objects": {
        "Account": {
          "objectName": "Account",
          "destination": "my-webhook",
          "requiredFields": [...],
          "optionalFields": [...]
        }
      }
    }
  }
}
Note: config contains the complete installation configuration object including read, write, subscribe, and proxy settings. installation.updated includes an additional lastConfig field with the previous configuration.
Webhook destination payload:
{
  "notificationType": "read.backfill.done",
  "data": {
    "projectId": "uuid",
    "provider": "salesforce",
    "integrationId": "uuid",
    "integrationName": "Salesforce Integration",
    "installationId": "uuid",
    "connectionId": "uuid",
    "groupRef": "customer-group-ref",
    "groupName": "Customer Name",
    "consumerRef": "user-123",
    "consumerName": "John Doe",
    "objectName": "Account"
  }
}
Kinesis destination payload:
{
  "projectId": "uuid",
  "provider": "salesforce",
  "integrationId": "uuid",
  "integrationName": "Salesforce Integration",
  "installationId": "uuid",
  "groupRef": "customer-group-ref",
  "groupName": "Customer Name",
  "consumerRef": "user-123",
  "consumerName": "John Doe",
  "objectName": "Account"
}
Webhook destination payload:
{
  "notificationType": "read.schedule.paused",
  "data": {
    "projectId": "uuid",
    "provider": "salesforce",
    "integrationId": "uuid",
    "integrationName": "Salesforce Integration",
    "installationId": "uuid",
    "connectionId": "uuid",
    "groupRef": "customer-group-ref",
    "groupName": "Customer Name",
    "consumerRef": "user-123",
    "consumerName": "John Doe",
    "config": {
      "read": {
        "objects": {
          "Account": {
            "objectName": "Account",
            "destination": "my-webhook",
            "requiredFields": [...],
            "optionalFields": [...]
          }
        }
      }
    },
    "error": "Error message if applicable"
  }
}
Kinesis destination payload:
{
  "projectId": "uuid",
  "provider": "salesforce",
  "integrationId": "uuid",
  "integrationName": "Salesforce Integration",
  "installationId": "uuid",
  "groupRef": "customer-group-ref",
  "groupName": "Customer Name",
  "consumerRef": "user-123",
  "consumerName": "John Doe",
  "config": {
    "read": {
      "objects": {
        "Account": {
          "objectName": "Account",
          "destination": "my-webhook",
          "requiredFields": [...],
          "optionalFields": [...]
        }
      }
    }
  },
  "error": "Error message if applicable"
}
Note: config contains the complete installation configuration object including read, write, subscribe, and proxy settings.
Webhook destination payload:
{
  "notificationType": "connection.created",
  "data": {
    "projectId": "uuid",
    "connectionId": "uuid",
    "provider": "salesforce",
    "groupRef": "customer-group-ref",
    "consumerRef": "user-123",
    "consumerName": "John Doe"
  }
}
Kinesis destination payload:
{
  "projectId": "uuid",
  "connectionId": "uuid",
  "provider": "salesforce",
  "groupRef": "customer-group-ref",
  "consumerRef": "user-123",
  "consumerName": "John Doe"
}
Webhook destination payload:
{
  "notificationType": "connection.error",
  "data": {
    "projectId": "uuid",
    "connectionId": "uuid",
    "provider": "salesforce",
    "groupRef": "customer-group-ref",
    "consumerRef": "user-123",
    "consumerName": "John Doe",
    "error": ["error message"]
  }
}
Kinesis destination payload:
{
  "projectId": "uuid",
  "connectionId": "uuid",
  "provider": "salesforce",
  "groupRef": "customer-group-ref",
  "consumerRef": "user-123",
  "consumerName": "John Doe",
  "error": ["error message"]
}
Webhook destination payload:
{
  "notificationType": "destination.webhook.disabled",
  "data": {
    "projectId": "uuid",
    "destinationId": "uuid",
    "destinationName": "production-alerts",
    "url": "https://your-webhook.com"
  }
}
Kinesis destination payload:
{
  "projectId": "uuid",
  "destinationId": "uuid",
  "destinationName": "production-alerts",
  "url": "https://your-webhook.com"
}