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

NameTypeSampleExplanation
entry_id
post
int7Selected entry/tab id from User.Basic data.entries.list. tab_id is also accepted.

Optional Parameters

NameTypeSampleWhat it gives
customer_id
post
int123Links the new entry row to one customer (cust_id). Omit for account-level entry rows.
entry_cust_id
post
int456Required 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_id
post
int12Optional folder for this row. If omitted, inferred from customer_id and the tab folders, same as dashboard.
status
post
string1762428013690c846d5f745Status key from User.Basic data.entries.tabs[].status. Dashboard form requires this when the tab has statuses.
sub_status
post
string1762428013690c846d5f745Sub status key for the selected status.
data1
post
mixedDemo valueValue 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).
data2
post
mixed2026-07-26Value 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.Add

Sample 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"
}