Contents
On this page
Update Call - Plugixa CRM
PUT /plugixa-crm/v1/calls/{id}
Change some of a call’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 call.
status: completeddoes not stampcompleted_at. Use Complete Call to close a call properly.
Request
PUT https://your-site.example/wp-json/plugixa-crm/v1/calls/17
Path parameters
| Name | Type | Description |
|---|---|---|
id |
integer |
The call’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, completed or canceled. Anything else is stored as planned. |
direction |
string |
No | outbound or inbound. Anything else, or nothing, is stored as outbound. |
description |
string |
No | HTML. Tags not allowed in post content are stripped. |
date_start |
string |
No | Start, in the site’s time zone. Reminders count back from it. |
date_end |
string |
No | End, in the site’s time zone. Must not be before date_start. |
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 call. 0 or nothing means none. |
reminders |
array |
No | Seconds before the start, as integers or objects with seconds_before. Replaces the call’s reminders. Needs the Reminders app. |
participants |
array |
No | Objects with type (contact, lead or user) and id. Replaces the whole list. Invalid entries are skipped. |
modified_at |
string |
No | The modified_at you read. When sent, the update is refused if the call 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_end 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.
{
"date_start": "2026-11-19 09:00:00",
"date_end": "2026-11-19 09:30:00"
}
Responses
200 OK. data is the updated call.
{
"success": true,
"data": {
"id": 17,
"name": "Discovery call",
"status": "planned",
"direction": "outbound",
"description": "",
"date_start": "2026-11-19 09:00:00",
"date_end": "2026-11-19 09:30:00",
"is_all_day": 0,
"color": null,
"parent_type": "contact",
"parent_id": 31,
"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": "Maria Anders",
"assigned_user_name": "Jordan Lee",
"participants": [
{
"id": 21,
"call_id": 17,
"participant_type": "contact",
"participant_id": 31,
"acceptance": "none",
"is_organizer": 0,
"created_at": "2026-11-12 09:30:00",
"participant_name": "Maria Anders"
}
],
"reminders": [
{
"id": 9,
"seconds_before": 3600,
"sent": 0
}
]
}
}
| Field | Type | Meaning |
|---|---|---|
data.id |
integer |
The call’s id |
data.status |
string |
planned, completed or canceled |
data.direction |
string |
outbound or inbound |
data.date_start |
string|null |
Site time zone |
data.date_end |
string|null |
Site time zone |
Errors
| Status | Code | When |
|---|---|---|
404 |
plugixa_crm_not_found |
No call with that id, or it is in the trash. |
422 |
plugixa_crm_invalid_dates |
date_end would be before date_start. |
409 |
plugixa_crm_conflict |
You sent modified_at and the call changed since. |
Plus the errors every endpoint can return.
Examples
curl -s -X PUT "https://your-site.example/wp-json/plugixa-crm/v1/calls/17" \
-u "admin:$WP_APP_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"date_start":"2026-11-19 09:00:00","date_end":"2026-11-19 09:30:00"}'
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-crm/v1/calls/17');
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([
'date_start' => '2026-11-19 09:00:00',
'date_end' => '2026-11-19 09:30: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/calls/17', {
method: 'PUT',
headers: {
'Authorization': auth,
'Content-Type': 'application/json',
},
body: JSON.stringify({
date_start: '2026-11-19 09:00:00',
date_end: '2026-11-19 09:30:00',
}),
});
const { data } = await response.json();
Quick Links
Share