---
title: "Log outreach"
method: POST
path: "/v1/people/{id}/activities"
tags: ["People"]
---

# Log outreach

`POST /v1/people/{id}/activities`

## Request

- Base URL: `https://api.rumoro.dev`
- URL: `https://api.rumoro.dev/v1/people/{id}/activities`
- Auth: HTTP bearer

Logs a contact with this person, such as an email, a direct message or a call. A not_contacted person moves to contacted. A person with no owner gets the contacting member as owner. A later stage or an existing owner is left alone. `memberId` falls back to the signed-in member. An API-key request without memberId logs an activity with no member, so no owner is set.

## Path parameters

- `id` string, required: The person's id (aut_...).

## Request body

- object
  - `channel` 'email' | 'x' | 'linkedin' | 'bluesky' | 'reddit' | 'github' | 'call' | 'meeting' | 'other', required: How the person was contacted.
  - `note` string: A short summary of what was sent or said.
  - `occurredAt` string, date-time: Defaults to now. Otherwise send the contact time as ISO 8601 or epoch ms.
  - `memberId` string: The user id of the member who reached out. Defaults to the signed-in member. With an API key and no value, the activity has no member.

## Response `201`

The new activity

- PersonActivity
  - `id` string, required: The activity's id (act_...).
  - `personId` string, required: The person's id (aut_...).
  - `channel` 'email' | 'x' | 'linkedin' | 'bluesky' | 'reddit' | 'github' | 'call' | 'meeting' | 'other', required: How the person was contacted.
  - `note` string, required: A short summary of what was sent or said. Empty if none was written.
  - `member` object, nullable, required: Who made contact. Null for an API-key entry without memberId, or after that member leaves.
    - `id` string, required: The member's user id.
    - `name` string, nullable, required
    - `email` string, nullable, required
  - `occurredAt` string, required: When the contact took place.
  - `createdAt` string, required: When the activity was logged.

## Other responses

- `400`: The body is not valid, or memberId is not in the workspace
- `401`: The API key is missing or not valid
- `404`: Your workspace has no mention by this person

---

[API](https://skmtc.dev/rumoro/apis/rumoro-api.md) · [All operations](https://skmtc.dev/rumoro/apis/rumoro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rumoro/apis/rumoro-api/revisions/9ef63ea894d1?raw)
