Contents
On this page

Update Task - Plugixa CRM

PUT /plugixa-crm/v1/tasks/{id}

Change some of a task’s fields. Only the fields you send change. PATCH works the same way.

Any user with access to Plugixa CRM. With Plugixa CRM Pro roles, the user’s role must also allow editing this task.

status: completed does not stamp completed_at. Use Complete Task to close a task properly.

Request

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

Path parameters

Name Type Description
id integer The task’s id

Request body

Content type: application/json

Field Type Required Description
name string No Sent blank, it is stored blank.
status string No planned, in_progress, completed or canceled. Anything else 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.
modified_at string No The modified_at you read. When sent, the update is refused if the task changed since: see Avoiding lost updates.

A field you leave out keeps its value. Sending only one of parent_type and parent_id clears both. 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.

{
  "priority": "urgent",
  "date_due": "2026-11-18 12:00:00"
}

Responses

200 OK. data is the updated task.

{
  "success": true,
  "data": {
    "id": 35,
    "name": "Send the renewal quote",
    "status": "planned",
    "priority": "urgent",
    "description": "",
    "date_start": null,
    "date_due": "2026-11-18 12: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 10:15: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

Errors

Status Code When
404 plugixa_crm_not_found No task with that id, or it is in the trash.
409 plugixa_crm_conflict You sent modified_at and the task changed since.

Plus the errors every endpoint can return.

Examples

curl -s -X PUT "https://your-site.example/wp-json/plugixa-crm/v1/tasks/35" \
  -u "admin:$WP_APP_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"priority":"urgent","date_due":"2026-11-18 12:00:00"}'
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-crm/v1/tasks/35');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'admin:' . getenv('WP_APP_PASSWORD'),
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'priority' => 'urgent',
        'date_due' => '2026-11-18 12:00:00',
    ]),
]);
$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/35', {
  method: 'PUT',
  headers: {
    'Authorization': auth,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ priority: 'urgent', date_due: '2026-11-18 12:00:00' }),
});
const { data } = await response.json();

Quick Links

Share