---
title: "Update activity"
method: POST
path: "/v2/activities/{id}"
tags: ["Activities"]
---

# Update activity

`POST /v2/activities/{id}`

Update one or more fields of an activity. At least one of title, type, content, template_id, due_at, or stage_id is required. `stage_id` must be a stage belonging to the deal's origin. `template_id` is only supported for WHATSAPP activities (pass `null` to detach). Requires the `ACTIVITIES_API` feature flag and an API key with the `activities:write` scope. Only activities belonging to the authenticated owner can be updated.

## Path parameters

- `id` string, uuid, required

## Headers

- `api-token` string, required

## Request body

- object
  - `title` string
  - `type` 'CALL' | 'MAIL' | 'SCHEDULE' | 'TASK' | 'MEETING' | 'WHATSAPP' | 'INSTAGRAM'
  - `content` string, nullable — Free-text body. For WHATSAPP/INSTAGRAM this is the message text; for CALL/MAIL/TASK it is the notes field.
  - `template_id` string, uuid, nullable — Attach (UUID) or detach (`null`) a WhatsApp Official message template. Only supported when the activity type is WHATSAPP; must reference a template belonging to the authenticated owner.
  - `due_at` string, date-time, nullable
  - `stage_id` string, uuid

## Response `200`

The updated activity object

- object
  - `status` integer — Response status
  - `data` Activity
    - `id` string, uuid
    - `title` string
    - `type` 'CALL' | 'MAIL' | 'SCHEDULE' | 'TASK' | 'MEETING' | 'WHATSAPP' | 'INSTAGRAM'
    - `content` string, nullable — Free-text body. For WHATSAPP/INSTAGRAM this is the message text (read from the message body the Clint UI renders); for CALL/MAIL/TASK it is the notes field.
    - `template_id` string, uuid, nullable — UUID of the attached WhatsApp Official message template, or null when none is attached.
    - `completed` boolean
    - `completed_at` string, date-time, nullable
    - `completed_by` string, uuid, nullable
    - `due_at` string, date-time, nullable — Public alias of the internal to_check_at column.
    - `custom` boolean — true when the activity was created manually (via the API or UI); false when generated automatically from a stage template.
    - `no_show` boolean
    - `stage_id` string, uuid
    - `created_at` string, date-time
    - `updated_at` string, date-time, nullable
    - `deal` object, nullable
      - `id` string, uuid
      - `status` 'OPEN' | 'WON' | 'LOST', nullable
      - `origin_id` string, uuid
      - `stage_id` string, uuid
      - `contact` object, nullable
        - `id` string, uuid
        - `name` string, nullable

## Other responses

- `400` — At least one of title, type, content, template_id, due_at, stage_id is required
- `401` — Authentication error - invalid or missing api-token
- `403` — This feature is not available for your account.
- `404` — Activity not found

---

[API](https://skmtc.net/clint/apis/clint-api.md) · [All operations](https://skmtc.net/clint/apis/clint-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clint/clint-api/versions/12b8f9eff943/schema)
