Skip to content

Update a task

client.task.update(stringid, TaskUpdateParams { fields, relationships } body, RequestOptionsoptions?): TaskUpdateResponse { id, createdAt, fields, 4 more }
POST/v1/tasks/{id}

Updates an existing task by ID. Only included fields and relationships are modified.

The $note relationship is read-only — manage notes via their own relationships.

Supports idempotency via the Idempotency-Key header.

Required scope: tasks:update

Rate limit category: Write

ParametersExpand Collapse
id: string

Unique identifier of the task to update.

body: TaskUpdateParams { fields, relationships }
fields?: Fields

Field values to update — only provided fields are modified; omitted fields are left unchanged. Tasks only support the documented system fields, all prefixed with $ (e.g. $title, $status). Call the definitions endpoint for available fields. See Fields and relationships for value type details.

"$description"?: string | null

Description of the task in markdown format.

"$dueAt"?: string | null

Due date as an ISO 8601 datetime string.

"$status"?: string | null

Task status. One of: TODO, IN_PROGRESS, COMPLETE, CANCELLED.

"$title"?: string | null

Title of the task.

relationships?: Record<string, Relationships>

Relationship operations to apply. System relationships use a $ prefix (e.g. $account, $assignedTo). Each value is an operation object with add, remove, or replace.

add?: string | Array<string>

Entity ID(s) to add to the relationship.

Accepts one of the following:
string
Array<string>
remove?: string | Array<string>

Entity ID(s) to remove from the relationship.

Accepts one of the following:
string
Array<string>
replace?: string | Array<string>

Entity ID(s) to set as the entire relationship, replacing all existing associations.

Accepts one of the following:
string
Array<string>
ReturnsExpand Collapse
TaskUpdateResponse { id, createdAt, fields, 4 more }
id: string

Unique identifier for the entity.

createdAt: string

ISO 8601 timestamp of when the entity was created.

fields: Record<string, Fields>

Map of field names to their typed values. System fields are prefixed with $ (e.g. $name, $email); custom attributes use their bare slug.

value: string | number | boolean | 3 more | null

The field value, or null if unset.

Accepts one of the following:
string
number
boolean
Array<string>
Address { city, country, latitude, 5 more }
city?: string | null

City name.

country?: string | null

2-letter ISO 3166-1 alpha-2 country code.

latitude?: number | null

Latitude coordinate.

longitude?: number | null

Longitude coordinate.

postalCode?: string | null

Postal or ZIP code.

state?: string | null

State or province.

street?: string | null

Street address line 1.

street2?: string | null

Street address line 2.

FullName { firstName, lastName }
firstName?: string | null

The contact's first name.

lastName?: string | null

The contact's last name.

valueType: "ADDRESS" | "CHECKBOX" | "CURRENCY" | 11 more

The data type of the field.

Accepts one of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
relationships: Record<string, Relationships>

Map of relationship names to their associated entities. System relationships are prefixed with $ (e.g. $owner, $contact).

cardinality: string

Whether the relationship is has_one or has_many.

objectType: string

The type of the related object (e.g. account, contact).

values: Array<string>

IDs of the related entities.

updatedAt: string | null

ISO 8601 timestamp of when the entity was last updated, or null.

externalId?: string | null

External identifier for the entity, or null if unset.

Update a task

import Lightfield from 'lightfield';

const client = new Lightfield({
  apiKey: 'My API Key',
});

const taskUpdateResponse = await client.task.update('id');

console.log(taskUpdateResponse.id);
{
  "id": "id",
  "createdAt": "createdAt",
  "fields": {
    "foo": {
      "value": "string",
      "valueType": "ADDRESS"
    }
  },
  "httpLink": "httpLink",
  "relationships": {
    "foo": {
      "cardinality": "cardinality",
      "objectType": "objectType",
      "values": [
        "string"
      ]
    }
  },
  "updatedAt": "updatedAt",
  "externalId": "externalId"
}
Returns Examples
{
  "id": "id",
  "createdAt": "createdAt",
  "fields": {
    "foo": {
      "value": "string",
      "valueType": "ADDRESS"
    }
  },
  "httpLink": "httpLink",
  "relationships": {
    "foo": {
      "cardinality": "cardinality",
      "objectType": "objectType",
      "values": [
        "string"
      ]
    }
  },
  "updatedAt": "updatedAt",
  "externalId": "externalId"
}