Skip to main content
Data Sync can send an event to a webhook for every record a run creates, updates, or deletes. StackOne works out the changes itself by comparing each run’s records with the ones it already stored. Events are configured per action on a Connector Profile, and every Linked Account with sync enabled for the action sends them.

Turn on events for an action

Events are delivered to a webhook in your project. If you don’t have one yet, add it on the Webhooks page first, or create it from the connector page in step 4.
1

Open the connector

Go to Connectors, open the connector, and select a saved Connector Profile. The action has to be switched on in that profile.
2

Open the action's Data Sync panel

Click the Data Sync icon on the action’s row (Set up Data Sync).
3

Choose which changes to send

  1. Turn on Enable Data Sync, if it isn’t on already. The event toggles stay disabled until it is.
  2. Under Events, turn on Created Events, Updated Events, Deleted Events, or any combination.
4

Pick the webhook

Select the webhook under Deliver to, or choose + Add Webhook to create one.
5

Save

Click Save Changes. Events start with the next run of each Linked Account’s sync.
Subscribed actions show on the webhook’s Events tab under Connector, tagged Data Sync, with a row for each change type. Each change type shows Active, or Paused when it’s turned off or sync for the action isn’t running.

When events are sent

Events go out once a run finishes, not the moment a record changes at the provider. How soon you hear about a change depends on Sync every.
deleted events only come from a full run, for the same reason deletions only surface on one. Set Full re-sync to match how quickly you need to hear about deletions.

Event payload

The event name is the action ID followed by the change:
  • {action_id}.created: a record that wasn’t in the stored set when the run started.
  • {action_id}.updated: a stored record whose fields changed since the last run.
  • {action_id}.deleted: a stored record a full run no longer found at the provider.
For example, bamboohr_list_employees.updated. Each change is its own request to your webhook.
event_data is read from the stored record when the event is prepared, after the run finishes. On a large run, preparing every event can take long enough for the next run to change the stored record first:
  • If the next run updates the record, the event carries the newer version.
  • If the next run removes the record, the event isn’t sent, since there’s no record left to send.

Delivery

Data Sync events are signed like every other webhook event, so the same signature verification applies. Their delivery works as follows:
  • A delivery that doesn’t get a 2xx response is retried, starting after 5 seconds and backing off to every 10 minutes, for up to 20 attempts.
  • StackOne sends each change from a run once per webhook, and its own retries don’t create duplicates. Your endpoint can still receive the same event twice if it returned 200 but the response was lost, so treat a repeat of the same event, record_id, and event_date as a duplicate.
  • Events arrive in batches and several are sent at once, so they aren’t guaranteed to arrive in the order the records changed.
Every delivery attempt is logged. View logs at the top of the webhook’s page lists them. View logs on a Data Sync row in the webhook’s Events tab opens that action’s sync runs instead, with Background Logs turned on.

Next steps

Data Sync

Turn on sync for an action and set how often it runs.

Webhooks

Create the webhook Data Sync events are delivered to, and verify their signatures.