← All documentationContents ↓

API Reference: Automations

Create, configure, and inspect automations and review their execution history.

Overview

Automations execute actions automatically in response to triggers — sending messages, updating records, creating new records, running wizard steps, and more. The API supports full automation management (create, update, delete, and action ordering) plus execution history. All automation endpoints are privileged tier and require the TEAM_ADMIN_DATA_WIZARDS feature permission on your API key or token.

Key Concepts

  • Trigger — The event that starts an automation. triggerType is one of SCHEDULE, RECORD_CREATED, RECORD_UPDATED, FIELD_VALUE_CHANGED, WIZARD_COMPLETED, or WIZARD_COMPLETION_FAILED; triggerConfig carries trigger-specific settings (for example the schedule, watched fields, or the wizard's dataWizardSimplyId).
  • Conditions — Optional filterConditions determine whether actions run for a given trigger event.
  • Actions — Ordered operations performed when the automation fires. actionType is one of SEND_EMAIL, UPDATE_FIELDS, CREATE_RECORD, RUN_WIZARD_STEP, CHARGE_PAYMENT, or SEND_USER_NOTIFICATION, with per-action actionConfig, continueOnError, retryConfig, and onFailureActions.
  • Execution log — Every run is logged with status, timing, and per-run record counts.

List Automations

GET /v1/automations supports an optional dataCollectionSimplyId filter plus limit (1–100, default 25) and offset. Each automation includes id, name, isEnabled, triggerType, triggerConfig, filterConditions, dataCollectionSimplyId, maxRecordsPerExecution, and lastRunAt.

const automations = await s360.automations.list();

for (const auto of automations.data) {
  console.log(`${auto.id}: ${JSON.stringify(auto.name)} [${auto.triggerType}] (enabled: ${auto.isEnabled})`);
}
curl -s "https://api.simply360.app/v1/automations" \
  -H "Authorization: Bearer $S360_API_KEY"

Get Automation Details

Returns the automation with its ordered actions array.

const automation = await s360.automations.get('AUTO-1234-ABCD');
console.log(automation.data.actions);
curl -s "https://api.simply360.app/v1/automations/AUTO-1234-ABCD" \
  -H "Authorization: Bearer $S360_API_KEY"

Create, Update, and Delete

// Create an automation (POST /v1/automations)
const created = await s360.automations.create({
  name: 'Welcome new volunteers',
  triggerType: 'RECORD_CREATED',
  dataCollectionSimplyId: 'XXXX-XXXX-XXXX',
});

// Update it (PUT /v1/automations/{automationSimplyId})
await s360.automations.update(created.data.id, { isEnabled: true });

// Delete it (DELETE /v1/automations/{automationSimplyId})
await s360.automations.delete(created.data.id);

Manage Actions

EndpointDescription
POST /v1/automations/{automationSimplyId}/actionsAdd an action (actionType, actionConfig, executionRank, continueOnError, retryConfig, onFailureActions).
PUT /v1/automations/{automationSimplyId}/actions/{automationActionSimplyId}Update an action.
DELETE /v1/automations/{automationSimplyId}/actions/{automationActionSimplyId}Delete an action.
PUT /v1/automations/{automationSimplyId}/actions/reorderReorder actions with orderedActionSimplyIds.
await s360.automations.createAction('AUTO-1234-ABCD', {
  actionType: 'UPDATE_FIELDS',
  actionConfig: { fieldUpdates: { 'FLDS-STAT-USXX': 'Welcomed' } },
});

Execution Logs

Review the execution history for an automation. Each entry includes status, startedAt, completedAt, recordsProcessed, recordsFailed, executionDurationMs, and errorDetails.

const executions = await s360.automations.listExecutions('AUTO-1234-ABCD', {
  limit: 25,
});

for (const log of executions.data) {
  console.log(`${log.startedAt}: ${log.status} (${log.recordsProcessed} processed, ${log.recordsFailed} failed)`);
}
curl -s "https://api.simply360.app/v1/automations/AUTO-1234-ABCD/executions?limit=25" \
  -H "Authorization: Bearer $S360_API_KEY"

Usage Notes

  • Automations execute asynchronously after the trigger event. Use the execution log to confirm outcomes.
  • Record writes made through the API fire RECORD_CREATED, RECORD_UPDATED, and FIELD_VALUE_CHANGED triggers just like dashboard edits. See API Reference: Data Records.
  • SEND_EMAIL actions with a fixed recipient list additionally require an outgoing-email send permission on the caller.
  • Action and trigger configs reference entities by simplyId, so automations are portable when synced across environments; automation changes are snapshotted into the team schema version history.
  • maxRecordsPerExecution (default 100) caps how many records one run processes.
  • Failed executions include error details in the execution log. Common causes: missing message templates, invalid field references, and recipient records without contact information.