POST

Projects.Add

Create a project like dashboard project Add modal (Project::save_project when project_id is empty). Sets type=project, created_by=org owner, user_id=actor. Optional projects_template_id copies template missions. Private projects require allowed_to_private_projects_and_missions.

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 a Projects record or sends the requested data after validation.

Push Service

No push is sent because this function only reads data or returns helper information.

Automation

No automation is run for this function.

Special Instructions

  • Same form as dashboard Add Project: project_name, client_id, organizations_user[], credentials, note, flags.
  • Private project: private_project=1 clears client and members (dashboard behavior).
  • organizations_user / member always includes the logged-in user id.
  • Update existing: Projects.Update or Projects.Save with project_id.
  • Dashboard one-shot save: Projects.Save (add when project_id empty).

Required Parameters

NameTypeSampleExplanation
project_name
post
stringWebsite redesignProject name. Alias: name.

Optional Parameters

NameTypeSampleWhat it gives
client_id
post
int12614595Customer id. Aliases: customer_id, cust_id. Ignored when private_project=1.
organizations_user
post
mixed[47,52]Team member ids (JSON array / comma list). Aliases: member, member_ids, team_members, organizations_user[].
default_user
post
mixed[47]Default assignee user ids.
credentials
post
stringftp loginCredentials text.
note
post
stringKickoff notesProject note.
tags
post
mixed1,2Tag ids (comma list or JSON array).
private_project
post
int01 = private project (no client / members).
use_as_template
post
int01 = save as template project.
allow_add_mission
post
int0Allow add mission flag.
show_hide_tag
post
int1Show/hide tags. Default 1.
mission_dependency
post
int0Mission dependency flag.
done
post
int0Done flag.
projects_template_id
post
int10Copy missions from this template project. Alias: template_project_id.
custom_fields
post
mixed{"project-priority":"high"}Custom fields object, or send project-* keys like the dashboard form.

Authentication

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

Authorization: Bearer YOUR TOKEN

Sample Request

{
    "url": "\/app\/Projects.Add",
    "method": "POST",
    "headers": {
        "Authorization": "Bearer YOUR TOKEN"
    },
    "body": {
        "project_name": "Website redesign",
        "client_id": "12614595",
        "organizations_user": "[47]",
        "note": "Kickoff"
    },
    "url_user": "https:\/\/{user}.bull36.com\/app\/Projects.Add",
    "url_domain": "https:\/\/{domain}\/app\/Projects.Add"
}

Endpoint

POST /app/Projects.Add
POST https://{user}.bull36.com/app/Projects.Add
POST https://{domain}/app/Projects.Add

Sample Output

{
    "success": 1,
    "id": 900,
    "project_id": 900,
    "message": "Your Projects Details Add",
    "data": {
        "id": 900,
        "name": "Website redesign",
        "client_id": 12614595
    }
}

JavaScript Example

const token = 'YOUR TOKEN';
const body = new URLSearchParams({
  project_name: 'Website redesign',
  client_id: '12614595',
  organizations_user: JSON.stringify([47]),
});
const res = await fetch('/app/Projects.Add', { method: 'POST', headers: { Authorization: 'Bearer ' + token }, body });
console.log(await res.json());

Error Example

{
    "success": 0,
    "error": "missing_required_parameter",
    "message": "Missing required parameter: project_name"
}