Contents
On this page

Create Task - Plugixa CRM

POST /plugixa-crm/v1/tasks

Create a task, optionally attached to a contact, account, opportunity or lead.

Any user with access to Plugixa CRM. With Plugixa CRM Pro roles, the user’s role must also allow creating tasks.

Request

POST https://your-site.example/wp-json/plugixa-crm/v1/tasks

Request body

Content type: application/json

Field Type Required Description
name string Yes Must not be blank.
status string No planned, in_progress, completed or canceled. Anything else, or nothing, is stored as planned.
priority string No low, normal, high or urgent. Anything else, or nothing, is stored as normal.
description string No HTML. Tags not allowed in post content are stripped.
date_start string No When work starts, in the site’s time zone.
date_due string No When it is due, in the site’s time zone. Reminders count back from it.
is_all_day boolean No Defaults to false.
color string No red, pink, purple, indigo, blue, teal, green, lime, amber, orange or grey. Anything else is stored as null.
parent_type string No contact, account, opportunity or lead. Needs parent_id.
parent_id integer No The record it belongs to. Not checked. If either half is missing or invalid, both are stored as null.
assigned_user_id integer No The WordPress user who owns the task. 0 or nothing means none.
reminders array No Seconds before the due date, as integers or objects with seconds_before. Replaces the task’s reminders. Needs the Reminders app.

date_start and date_due are wall-clock times in the site’s time zone, as YYYY-MM-DD HH:MM:SS. You can also send YYYY-MM-DD HH:MM, a bare date, or an ISO 8601 time with an offset or Z, which is converted to the site’s time zone. Anything else is stored as null. account_id is worked out from the parent: an account is its own, a contact or an opportunity gives its account, a lead gives none. completed_at is only set by Complete Task.

{
  "name": "Send the renewal quote",
  "priority": "high",
  "date_due": "2026-11-19 17:00:00",
  "color": "amber",
  "parent_type": "opportunity",
  "parent_id": 24,
  "assigned_user_id": 3,
  "reminders": [
    3600
  ]
}

Responses

201 Created. data is the new task.

{
  "success": true,
  "data": {
    "id": 35,
    "name": "Send the renewal quote",
    "status": "planned",
    "priority": "high",
    "description": "",
    "date_start": null,
    "date_due": "2026-11-19 17:00:00",
    "is_all_day": 0,
    "color": "amber",
    "parent_type": "opportunity",
    "parent_id": 24,
    "account_id": 12,
    "assigned_user_id": 3,
    "completed_at": null,
    "created_by": "1",
    "modified_by": "1",
    "created_at": "2026-11-12 09:30:00",
    "modified_at": "2026-11-12 09:30:00",
    "deleted_at": null,
    "parent_name": "Northwind Traders: platform licence",
    "assigned_user_name": "Jordan Lee",
    "reminders": [
      {
        "id": 9,
        "seconds_before": 3600,
        "sent": 0
      }
    ]
  }
}
Field Type Meaning
data.id integer The task’s id
data.status string planned, in_progress, completed or canceled
data.priority string low, normal, high or urgent
data.date_start string|null Site time zone
data.date_due string|null Site time zone
data.parent_type string|null contact, account, opportunity or lead
data.parent_id integer|null The record the task hangs off
data.account_id integer|null The account the parent rolls up to, worked out for you
data.completed_at string|null UTC datetime it was completed
data.parent_name string|null The parent record’s name
data.assigned_user_name string|null The owner’s display name
data.reminders array Reminders on the task: seconds_before and whether it was sent. Empty when the Reminders app is off

Errors

Status Code When
422 plugixa_crm_invalid_name name is missing or blank.

Plus the errors every endpoint can return.

Examples

curl -s -X POST "https://your-site.example/wp-json/plugixa-crm/v1/tasks" \
  -u "admin:$WP_APP_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"name":"Send the renewal quote","priority":"high","date_due":"2026-11-19 17:00:00","color":"amber","parent_type":"opportunity","parent_id":24,"assigned_user_id":3,"reminders":[3600]}'
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-crm/v1/tasks');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'admin:' . getenv('WP_APP_PASSWORD'),
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'name'             => 'Send the renewal quote',
        'priority'         => 'high',
        'date_due'         => '2026-11-19 17:00:00',
        'color'            => 'amber',
        'parent_type'      => 'opportunity',
        'parent_id'        => 24,
        'assigned_user_id' => 3,
        'reminders'        => [3600],
    ]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const auth = 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`);
const response = await fetch('https://your-site.example/wp-json/plugixa-crm/v1/tasks', {
  method: 'POST',
  headers: {
    'Authorization': auth,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Send the renewal quote',
    priority: 'high',
    date_due: '2026-11-19 17:00:00',
    color: 'amber',
    parent_type: 'opportunity',
    parent_id: 24,
    assigned_user_id: 3,
    reminders: [3600],
  }),
});
const { data } = await response.json();

Quick Links

Share