ackDB

Re-parent a mis-attached contact to the right company

The fix for a contact that was attached to the wrong company. A move is a CORRECTION, not a job change, so it RESTAMPS the edge's events onto the corrected company (entity_events.entity_id): that history was always about the target company — only the pointer was wrong. contact.moved { from_entity_id, to_entity_id } is emitted on the NEW company. The person is untouched.

409 when the move would collide at the target: the person already has an active edge there (that is the same affiliation — merge the contacts instead of duplicating them), or an active contact there already holds this email.

A genuine job change is NOT a move — it is a new contact at the new company (and the old edge ends). Never restamp a transition.

post/api/v1/ackdb/contacts/{contactId}/move

Request

  • Base URL
    http://localhost:3009
  • Auth
    HTTP bearer

Path parameters

contactIdstring required

Contact id (ULID = contacts.contact_id) — the affiliation edge.

Request body

entityIdstring required

The correct company.

reasonstring

Free-form operator note, recorded on the contact.moved event.

Example request

{
  "entityId": "01J8ZE4X1M5Y6Z7A8B9C0D1E2F"
}

Response

{ data: Contact, moved: { fromEntityId, toEntityId, eventsRestamped } }.

dataunknown required

Changes

No recorded changes to this operation across all 1 revision of this API.