ProductOSDocs

Entity reference · v1

contacts

CONT-NNNNNNtable contactssoft delete

People at an account: name, email, job title, the persona they fit and notes. Meeting transcripts match speakers and attendees to contacts by email, then by a name unique among the meeting's accounts. is_primary marks the account's primary contact, which the account's primary_contact and primary_contact_email mirror.

Endpoints

GET/api/v1/contacts
POST/api/v1/contacts
GET/api/v1/contacts/{id}
PATCH/api/v1/contacts/{id}
DELETE/api/v1/contacts/{id}
POST/api/v1/contacts/{id}/restore

Writable fields

* required on create. PATCH treats every field as optional.

FieldTypeConstraintsNotes
name*string
emailstringStored lowercased. Meetings match an attendee to a contact by this address first.
job_titlestringTheir role at the company, e.g. VP Engineering.
account_iduuidThe account they work at.
persona_iduuidThe persona they fit.
notestext
is_primarybooleanThe account's primary contact. Setting it moves the role from whoever had it; it needs account_id.
is_draftboolean
metadatajson

Listing & filtering

  • Pagination: ?limit=50&offset=0 · max limit 200
  • Default sort: ?sort=name&order=asc
  • Sortable fields: name · created_at · updated_at · id_number
  • Search (?q=): name, email, job_title
  • Filters: ?account_id= ?persona_id= ?email= ?is_primary= ?is_draft= , repeat any filter to OR multiple values
  • Trash: hidden by default; pass ?include_deleted=true

Examples

curlbash
curl 'https://productos.ca/api/v1/contacts?limit=10' \
  -H "Authorization: Bearer $TOKEN"

Try it out

Paste a token and hit a real endpoint. The request goes from your browser straight to /api/v1/contacts. The token is held in this page only for the request and is never stored.

Try it out

Issue tokens in Settings → API tokens. Token never leaves this page.

GET/api/v1/contacts?limit=3

Generated from the API's entity configuration. This page is rebuilt on every deploy, so it always matches the live API.