SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester

Log a deal activity

Adds an activity to the deal timeline and updates the deal last activity time. A due_at sets the deal next activity time. Give a subject, a body, or both. The timeline shows the name of the API key or connected app that logged it.

POSThttps://app.softsolz.uk/api/v1/services/pipelines/pipelines/deals/{deal_id}/activities

Recent Requests

Kept only in this browser
TimeStatusTook
Send a request with Try it to see it here.

Path Params

deal_idstringrequired

Headers

Authorizationstringrequired

Bearer token: Bearer sk_live_... (or sk_test_... for sandbox). A login token will not work here.

Idempotency-Keystring

Optional idempotency key for safe retries.

Body Params

kindstring

Type of activity. Any other value is saved as a note.

subjectstring

Short subject line, up to 200 characters (longer is refused with 400 heading_too_long). Required when there is no body.

bodystring

Activity details. Required when there is no subject.

due_atstring | null

When a follow-up is due.

sourcestring

Name of the tool that logged this activity, shown on the timeline.

source_idstring

Reference of the matching record in that tool.

Response

Response Body

idstringTimeline entry id, prefixed "activity-".
activity_idstringActivity id.
entry_typestringAlways "activity" for a logged activity.
kindstringType of activity.
subjectstring | nullShort subject line.
bodystring | nullActivity details.
sourcestring | nullWhere the activity came from, when it was logged by another tool.
source_idstring | nullReference of the record in that other tool.
due_atstring | nullWhen a follow-up is due, or null.
completed_atstring | nullWhen the activity was marked done, or null.
actor_namestring | nullWho logged it: the member name, or the name of the API key or connected app. Null when unknown.
created_atstringWhen the activity was logged.

Request

curl --request POST \
--url https://app.softsolz.uk/api/v1/services/pipelines/pipelines/deals/{deal_id}/activities \
--header 'Authorization: Bearer sk_live_your_key' \
--header 'Content-Type: application/json' \
--data '{
"kind": "call",
"subject": "Intro call",
"body": "Wants pricing by Friday.",
"due_at": "2026-10-09T10:00:00Z"
}'

Credentials

Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.

Response · 201

{
"data": {
"id": "activity-88",
"activity_id": "88",
"entry_type": "activity",
"kind": "call",
"subject": "Intro call",
"body": "Wants pricing by Friday.",
"source": null,
"source_id": null,
"due_at": "2026-10-09T10:00:00.000Z",
"completed_at": null,
"actor_name": "Sam Patel",
"created_at": "2026-10-01T09:15:00.000Z"
}
}