POST

Entries.RunAutomation

Run one active automation for the customers linked to selected entry rows. Matches the dashboard Entry-filter Run Automation button: select entry rows, choose an automation, and the automation runs on each related customer. For a single-customer custom tab, send customer_id with the selected entry row ids (mode=tab) to use the tab-scoped dashboard path.

Permissions

  • User must be logged in with a valid bearer token.
  • Returned or changed records are limited by the user permissions, team access, folder access, and account settings.

Action

  • Validates automation_id belongs to the account and is active.
  • Resolves selected entry rows to customers, or uses customer_ids directly.
  • Calls the same dashboard PHP runners used by the UI.

Push Service

Emits realtime automation.run after a successful bulk run.

Automation

Runs the chosen automation_event id through run_automations_by_id for each selected customer/entry row, same as the dashboard.

Special Instructions

  • Use Entries.AutomationsList (or AutomationEvents.List with automation_status=1) to fill the automation picker.
  • Preferred App fields: automation_id + ids (entry row ids from Entries.List). The API resolves each row customer_id and runs the automation for those customers.
  • Dashboard-compatible aliases: selected_cust_id can be comma-separated customer ids (admin Entry-filter JS), and selected_all_cust_id is the single customer id for tab-scoped runs.
  • Optional entry_id limits selected row lookup to one entry/tab setting.
  • Maximum 500 selected ids per request.
  • Existing Entries.Add/Update/Delete still auto-run entries.created/updated/deleted. This route is only for manual bulk Run Automation.

Required Parameters

NameTypeSampleExplanation
automation_id
post
int2827Active automation id from Entries.AutomationsList / AutomationEvents.List.

Optional Parameters

NameTypeSampleWhat it gives
ids
post
string|array66aa00000000000000000001,66aa00000000000000000002Selected entry row ids from Entries.List. Aliases: row_ids, entry_ids, entry_row_ids, selected_entry_ids.
customer_ids
post
string|array123,456Run directly for these customers. Alias: selected_cust_id (dashboard admin field).
customer_id
post
int123When sent with entry row ids (or mode=tab), runs the custom-tab dashboard path for this customer. Alias: selected_all_cust_id.
entry_id
post
int7Optional entry/tab setting id to scope selected row lookup. Alias: tab_id.
mode
post
stringtabUse tab or entry_rows to force the custom-tab runner. Default resolves customers from selected entry rows.
automation_type
post
stringmanualOptional event type for tab-scoped runs (dashboard data_type). Defaults to the automation event.

Authentication

Send the bearer token returned by Login in the request header.

Authorization: Bearer YOUR TOKEN

Sample Request

{
    "url": "\/app\/Entries.RunAutomation",
    "method": "POST",
    "headers": {
        "Authorization": "Bearer YOUR TOKEN"
    },
    "body": {
        "automation_id": "2827",
        "ids": "66aa00000000000000000001",
        "entry_id": "7"
    },
    "url_user": "https:\/\/{user}.bull36.com\/app\/Entries.RunAutomation",
    "url_domain": "https:\/\/{domain}\/app\/Entries.RunAutomation"
}

Endpoint

POST /app/Entries.RunAutomation
POST https://{user}.bull36.com/app/Entries.RunAutomation
POST https://{domain}/app/Entries.RunAutomation

Sample Output

{
    "success": 1,
    "message": "Success",
    "automation_id": 2827,
    "mode": "entries_to_customers",
    "customer_ids": [
        "123"
    ],
    "count": 1
}

JavaScript Example

const token = 'YOUR TOKEN';
const autos = await fetch('/app/Entries.AutomationsList', { method: 'POST', headers: { Authorization: 'Bearer ' + token } }).then(r => r.json());
const automationId = autos.data[0].id;
const body = new URLSearchParams({
  automation_id: String(automationId),
  ids: '66aa00000000000000000001',
  entry_id: '7',
});
const res = await fetch('/app/Entries.RunAutomation', { method: 'POST', headers: { Authorization: 'Bearer ' + token }, body });
console.log(await res.json());

Error Example

{
    "success": 0,
    "message": "Automation was not found."
}