Skip to main content
Use this when your outbound tool sends the messages and Ziplined should know about it.

Before you connect

  • A key with scope write.
  • The Ziplined id of every person your tool contacts.
Keep the person id in your sequencer next to the email address. It is the only thing you need to write back.

Log an act

1

Find the person, if you lost the id

A pasted profile URL matches that one person. A bare public identifier works too.
2

Log the act, right after you send

channel is linkedin_message, email, call or other. occurred_at defaults to now, so pass it only when backfilling. tags are added to the existing tags.
3

Update the stage when the conversation moves

A reply, a meeting or a no is a stage change, not an outreach act. Use disqualified for a hard no.

Read the answer

The 201 is the confirmation.
outreach_count and last_outreach_at come from a nightly rebuild, so they lag the act by one night. Do not treat the counter in this response as confirmation.The act itself is readable straight away on GET /v1/people/{person_id} under outreach.

Troubleshoot

The Idempotency-Key is required. Derive it from something stable in your tool, such as the sequencer’s own message id. A retry after a timeout then logs one act instead of two. The same key with a different body is a 409.
PATCH /v1/people takes a list of ids, so you can settle many stages in one call.disqualified beats every other stage, so that person never reads as undecided again.

Next

The same two acts are the log_outreach and update_person MCP tools. An assistant can do this while you talk to it. See Tools.