POST
Entries.Add
Add one row inside a selected entry tab, same as the dashboard add-entry popup. First call User.Basic, choose a tab from data.entries.list, and send that id as entry_id. Send customer_id when the row belongs to a customer. Send values as data1, data2, data3, etc. according to that selected entry field settings.
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
- Creates one row in Mongo tabs for the selected entry/tab.
- Applies field-type casting, default_value for missing dataN, entry-customer folder/status checks, created_by, updated_by, and timestamps.
Push Service
Pushes entries.created to connected users who should see this selected entry row.
Automation
Runs automation event entries.created with the entry row id, selected entry_id, optional customer_id, and submitted data fields.
Special Instructions
- Use User.Basic data.entries.tabs[].fields to understand what data1, data2, data3, etc. mean. Each field has field_no and input_type.
- Server-required: entry_id. Also entry_cust_id when use_customer_for_entry=1 / entry_customer.enabled=true. Other dataN fields are optional on the server (dashboard uses HTML required on status when statuses exist; missing dataN get tab default_value or empty).
- If entry_customer.enabled=true, the customer must be in entry_customer.folder_id. If entry_customer.internal_status_id is set, that customer must currently have that internal status in that folder.
- Store types match dashboard Mongo tabs rows: text/email/select/customer/yes_no/files as string; number as int/float; date as UTC date; date_time as UTC datetime; year as YYYY-01-01; hour as duration (send H:i or H:i:s); team_member and multi-select as JSON arrays. Default team_member value 010 is replaced with the logged-in user id.
- Dates should be sent in UTC as Y-m-d H:i:s for datetime fields or Y-m-d for date-only fields. d.m.Y is also accepted.
- Optional folder_id, related_tabid, related_cust_id, status, sub_status work like the dashboard form. folder_id is inferred from the parent customer when omitted.
- Use EntriesSettings.Add only when creating a new tab definition, not when adding a row inside a tab.
Required Parameters
| Name | Type | Sample | Explanation |
|---|---|---|---|
entry_idpost | int | 7 | Selected entry/tab id from User.Basic data.entries.list. tab_id is also accepted. |
Optional Parameters
| Name | Type | Sample | What it gives |
|---|---|---|---|
customer_idpost | int | 123 | Links the new entry row to one customer (cust_id). Omit for account-level entry rows. |
entry_cust_idpost | int | 456 | Required when the selected entry has entry_customer.enabled=true. Customer must be in entry_customer.folder_id and match internal_status_id when that is set. entry_customer_id is also accepted. |
folder_idpost | int | 12 | Optional folder for this row. If omitted, inferred from customer_id and the tab folders, same as dashboard. |
statuspost | string | 1762428013690c846d5f745 | Status key from User.Basic data.entries.tabs[].status. Dashboard form requires this when the tab has statuses. |
sub_statuspost | string | 1762428013690c846d5f745 | Sub status key for the selected status. |
data1post | mixed | Demo value | Value for field number 1. Type follows tabs[].fields[].input_type (text, number, date, date_time, hour, year, select, team_member, customer, yes_no, email, Files). |
data2post | mixed | 2026-07-26 | Value for field number 2. Date = Y-m-d, date_time = Y-m-d H:i:s, hour = H:i or H:i:s, team_member = JSON array of user ids. |
Authentication
Send the bearer token returned by Login in the request header.
Authorization: Bearer YOUR TOKEN
Sample Request
{
"url": "\/app\/Entries.Add",
"method": "POST",
"headers": {
"Authorization": "Bearer YOUR TOKEN"
},
"body": {
"entry_id": "7",
"customer_id": "123",
"entry_cust_id": "456",
"data1": "Demo value"
},
"url_user": "https:\/\/{user}.bull36.com\/app\/Entries.Add",
"url_domain": "https:\/\/{domain}\/app\/Entries.Add"
}Endpoint
POST /app/Entries.Add
POST https://{user}.bull36.com/app/Entries.Add
POST https://{domain}/app/Entries.AddSample Output
{
"success": 1,
"id": "66aa00000000000000000001",
"row_id": "66aa00000000000000000001",
"entry_id": 7,
"data": {
"id": "66aa00000000000000000001",
"entry_id": 7,
"customer_id": 123,
"entry_cust_id": 456,
"entry_folder_id": 12,
"entry_customer_data": {
"id": 456,
"name": "Linked customer",
"phone": "0500000000"
},
"data1": "Demo value"
},
"message": "Entry row added successfully."
}JavaScript Example
const token = 'YOUR TOKEN';
const body = new URLSearchParams({ entry_id: '7', customer_id: '123', data1: 'Demo value' });
const res = await fetch('/app/Entries.Add', { method: 'POST', headers: { Authorization: `Bearer ${token}` }, body });
const data = await res.json();
console.log(data.row_id);Error Example
{
"success": 0,
"message": "Missing required parameter: entry_id"
}