Skip to content

Integration.synced

Emitted each time an Integration is synced.

Integration.sync emits Integration.synced when it completes on an Integration.

PropertyValue
Emitted byIntegration.sync
NounIntegration
WakesNone.

Payload

Each delivery is an Event record. data holds what Integration.sync returns.

FieldTypeRequiredDescription
namestringrequiredIntegration.synced.
atdatetimerequiredWhen it happened.
seqintegerIts position in the namespace, one more than the Event before; any seq is a cursor into the history.
datajsonrequiredThe Thing as the Action left it.
data.integrationIntegrationrequiredThe Integration with its sync cursor moved.
data.integration.acquiredstringrequiredOne of owned, wrapped, or recruited.
data.integration.termstextThe terms the Startup holds the right to use and resell it under.
data.integration.scopestringrequiredOne of studio, startup, or customer.
data.integration.syncstringWhich side leads a sync connector: platform or provider.
data.integration.modestringrequiredHow records move: mirror writes db.sb out to the outside tool; import turns edits there into Changes. db.sb is the record in both.
data.integration.statestringrequiredWhere the connected account stands; read fresh before every call.
data.integration.venuestringThe id of the ad, social or app-store venue the account is on, when it is on one.
data.integration.accountstringThe outside account’s own id, such as an ad account, a workspace or a repository.
data.integration.grantsstring[]The outside permissions the account holder approved: the narrowest set its Verbs need.
data.integration.connectedByPartyWho approved the connection; a Human’s own account is used only under that Human’s Mandate.
data.integration.environmentstringA test Integration reaches only the upstream’s test account, as a Stripe test account does.
data.integration.expiresAtdatetimeWhen access lapses unless refreshed.
data.integration.refreshedAtdatetimeWhen the platform last renewed the outside token.
data.integration.lastErrorstringThe error slug of the last failed call or refresh, cleared by the next success.
data.integration.cursorstringWhere the last sync run stopped, so the next run reads only what changed.

Example

JSON
{
  "$id": "https://api.sb/petpantry.shop/events/event_1",
  "$type": "Event",
  "name": "Integration.synced",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "integration": {
      "$id": "https://api.sb/petpantry.shop/integrations/integration_1",
      "$type": "Integration",
      "acquired": "owned",
      "terms": "Resale allowed under the provider’s published API terms; 10,000 calls a month included.",
      "scope": "studio",
      "sync": "Example sync",
      "mode": "mirror",
      "state": "connecting",
      "venue": "Example venue",
      "account": "Example account",
      "grants": [
        "Example grants"
      ],
      "connectedBy": "party_1",
      "environment": "test",
      "expiresAt": "2026-10-22T12:00:00Z",
      "refreshedAt": "2026-10-22T12:00:00Z",
      "lastError": "Example last error",
      "cursor": "Example cursor"
    }
  },
  "seq": 1
}