AutomationActions.Add
Create an automation action
Permissions
User must be logged in and allowed to manage automation/settings for this account.
Action
Creates one action node for the selected trigger flow. The node runs later when the parent trigger fires.
Push Service
Pushes automationactions.add.created to refresh automation builder screens.
Automation
No business automation runs while editing automation configuration. It runs later only when an active trigger event happens.
Special Instructions
Use AutomationEvents.Add response.id as flow_id. Required fields after flow_id/type depend on the selected type; see the full Automation docs for the type catalog. Full allowed type keys include: add_participant_in_group, add_to_tab_cust, addAppointmentGroup, addCampaign, addCourse, addInternalMessage, addList, addMission, addNewCampaign, addTag, ai_agent, apiCall, apiCallWithParam, change_custom_fields, change_wp_status, changeStatus, create_document, create_subscribers, createInvoice, customer_custom_fileds, if, internal_status, jumpEditClient, missionDone, moveToFolder, open_room_diary, open_ticket, openAppointment, openMission, order_har_habituach_client, order_mislaka_client, Project, reminder, remove_participant_from_group, remove_share_with_om, remove_subscribers, remove_to_tab_cust, removeFolder, removeMissions, removeTag, send_list, sendAudio, sendEmail, sendForm, sendNotification, sendPdfToSign, sendSms, sendWhatsapp, sendWhatsappInGroup, shareWithOM, shareWithUser, startFlow, stop_automation, update_fixed_fields, update_to_tab_cust. Full instructions: /docs/generated/app-route-diffs/AutomationActions.Add.md Sample curl: curl -X POST https://{domain}/app/AutomationActions.Add \ -H 'Authorization: Bearer YOUR TOKEN' \ -d 'flow_id=123' \ -d 'type=sendEmail' \ -d 'step=1' \ -d 'subject=Welcome' \ -d 'text=Hello {name}'
Required Parameters
| Name | Type | Sample | Explanation |
|---|---|---|---|
flow_idpost | int | 123 | AutomationEvents.Add returns this id. Use that event id as the parent flow_id for action nodes. |
typepost | string | sendEmail | Action node type. Use one of the allowed action type keys in the full Automation docs. |
Optional Parameters
| Name | Type | Sample | What it gives |
|---|---|---|---|
steppost | int | 1 | Visual/order step number inside the flow. |
parameterpost | json/string | {} | Main type-specific configuration: recipient, status id, folder id, API URL, IF rules, etc. |
subjectpost | string | Welcome | Email subject or node title when the selected type uses a subject. |
textpost | string/json | Hello {name} | Message body, note text, prompt, or JSON settings. Supports automation shortcodes. |
list_typepost | string | customer | List/context selector for list/course/campaign-style actions. |
nextpost | int/string | 2 | Next step number/id for linear execution. |
delaypost | int | 10 | Delay amount for this action. |
delay_timepost | time | 09:30:00 | Fixed time in H:i:s for scheduled action timing. Send time values as H:i:s. If the route also has a date field, send that date as UTC Y-m-d H:i:s. |
delay_typepost | string | minute | Delay unit: minute, hour, day, etc. Server stores/uses it with the action. |
extra_parampost | json/string | 15 | Secondary type-specific configuration such as template id, flags, or related resource id. |
parpost | string | tag | Advance-condition filter dimension. |
advance_condition_whenpost | int | 0 | 0 means enabled/run normally. 1 means disabled/skip by the action toggle. Activate sets 0; Disable sets 1. |
condition_operatorpost | string | gt | Advanced condition operator for custom field comparison: gt, lt, gte, lte, eq. |
condition_compare_topost | string | now | Advanced condition compare target: fixed, now, now_plus. |
condition_compare_valuepost | string | 3 | Advanced condition compare value. |
condition_compare_unitpost | string | day | Advanced condition compare unit: minute, hour, day. |
includepost | json/string | [1,2] | Included ids/values for advance-condition blocks. |
excludepost | json/string | [3] | Excluded ids/values for advance-condition blocks. |
folder_idpost | int/string | 1 | Folder id for moveToFolder/removeFolder or actions that need a folder. |
include_valuepost | string/json | 1000 | Free value for condition blocks. |
tag_namepost | string/id | vip | Tag key/name for condition/action selectors. |
before_afterpost | string | after | Date-relative scheduling direction. |
dateofpost | string | followup | Date field used for relative scheduling. |
hourofpost | time | 10:00:00 | Hour used with date-relative scheduling. Use H:i:s. Send time values as H:i:s. If the route also has a date field, send that date as UTC Y-m-d H:i:s. |
date_to_do_missionpost | datetime | 2026-07-22 09:30:00 | Mission due datetime. Send UTC Y-m-d H:i:s. Send UTC date/time as Y-m-d H:i:s, for example 2026-07-20 10:00:00. The SDK converts user local Date/local datetime input to UTC before posting. |
mission_imagepost | string/path | /files/mission.png | Mission image/file reference for addMission. |
mission_date_to_do_delaypost | int | 2 | Relative mission due-date delay amount. |
mission_date_to_do_delay_typepost | string | day | Relative mission due-date unit. |
missions_steps_idpost | int | 3 | Mission step/status id. |
project_idpost | int | 7 | Project id for mission/project actions. |
project_column_namepost | string | todo | Project column key for project actions. |
share_one_tm_to_custpost | int | 1 | Share with one selected team member from a list. |
the_user_that_do_actionpost | int | 1 | Use the team member who performed the triggering action when supported. |
remove_all_other_shared_tmpost | int | 1 | Remove all other shared team members in share/remove actions. |
last_team_keypost | string | sales | Last team key used by team assignment/share logic. |
extra_fiels_datapost | json/string | {} | Additional structured type-specific data: typed API params, ticket fields, remove TM lists, etc. |
update_tab_extra_conditionpost | json/string | {} | Extra condition JSON for update_to_tab_cust. |
second_customer_detailspost | json/string | {} | Lookup/selection settings for actions that target a second or linked customer. |
to_the_link_custpost | int | 1 | Send/update the linked customer when the triggering event supports linked customers. |
to_second_emailpost | int/string | 1 | Use customer second email for email actions. |
get_datapost | int/json/string | 1 | Whether API-call GET/query data is configured, or the raw config. |
post_header_datapost | int/json/string | 1 | Whether API-call headers/body are configured, or the raw config. |
get_data_valuepost | json/string | ["customer_id={id}"] | API-call query values. |
post_header_data_valuepost | json/string | ["Authorization: Bearer TOKEN"] | API-call header/body values. |
change_date_formatpost | int | 1 | Enable date-format conversion for API-call/action values. |
select_date_formatpost | string | Y-m-d | Target date format when change_date_format is enabled. |
api_call_methodpost | string | POST | HTTP method for apiCall/apiCallWithParam. |
post_typepost | string | json | Payload type for API call: json, form, etc. |
position_and_connectionpost | json/string | {"canvas_x":100,"canvas_y":200,"canvas_links":"true:2,false:3"} | Canvas position and links. For IF/AI branches store true/false links in canvas_links, for linear actions use next links. |
Authentication
Send the bearer token returned by Login in the request header.
Authorization: Bearer YOUR TOKEN
Sample Request
{
"url": "\/app\/AutomationActions.Add",
"method": "POST",
"headers": {
"Authorization": "Bearer YOUR TOKEN"
},
"body": {
"flow_id": "123",
"type": "sendEmail",
"step": "1",
"subject": "Welcome",
"text": "Hello {name}"
},
"url_user": "https:\/\/{user}.bull36.com\/app\/AutomationActions.Add",
"url_domain": "https:\/\/{domain}\/app\/AutomationActions.Add"
}Endpoint
POST /app/AutomationActions.Add
POST https://{user}.bull36.com/app/AutomationActions.Add
POST https://{domain}/app/AutomationActions.AddSample Output
{
"success": "1",
"message": "AutomationActions.Add created",
"id": "200",
"data": {
"id": "200",
"flow_id": "123",
"type": "sendEmail"
},
"automation_event": null,
"socket_event": "automationactions.add.created"
}JavaScript Example
const token = 'YOUR TOKEN';
const body = new URLSearchParams();
body.set('flow_id', '123');
body.set('type', 'sendEmail');
body.set('step', '1');
body.set('subject', 'Welcome');
body.set('text', 'Hello {name}');
const res = await fetch('/app/AutomationActions.Add', {
method: 'POST',
headers: { Authorization: `Bearer ${token}` },
body
});
const data = await res.json();
console.log(data);Error Example
{
"success": "0",
"message": "Missing required parameter: flow_id, type"
}