Contents
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