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: completeddoes not stampcompleted_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