Skip to main content
POST
Create person

Authorizations

Authorization
string
header
required

Access token issued by gs.service.id. Its access_identity claim carries team_sid, actor_sid and actor_type, and that team scope is authoritative.

Team-SID
string
header
required

Team scope for tokens that do not carry one. Ignored when the token already names a team.

Body

application/json

Request body of create_person.

playtable_sid
string
required

Target table (pt_tb_…) - the person's single membership.

Required string length: 18
Pattern: ^pt_tb_
full_name
string | null

Display name, 1..255: a manual observation (it outranks every source until reset), never a column; null = unnamed until a source names the row.

Required string length: 1 - 255
avatar_url
string<uri> | null

Profile photo URL (max 2048): a manual observation like full_name, never a column; null = no picture known.

Maximum string length: 2048
ln_member_id
string | null

LinkedIn member urn id - strongest dedup key.

Maximum string length: 255
ln_id
string | null

Raw LinkedIn profile URN (ACoAA…); no spaces. Decodes to ln_member_id.

Maximum string length: 255
Pattern: ^\S*$
sn_id
string | null

Raw Sales Navigator URN (ACwAA…); no spaces. Decodes to the same ln_member_id.

Maximum string length: 255
Pattern: ^\S*$
recruiter_id
string | null

Raw Recruiter URN (AEMAA…); no spaces. Decodes to the same ln_member_id.

Maximum string length: 255
Pattern: ^\S*$
ln_nickname
string | null

Vanity slug, or a profile URL: the service reduces a URL to its axis (a slug, or a URN moved to ln_id / sn_id / recruiter_id) and never stores the URL (SERVICE_CONVENTIONS §Y). Counts as contact data; dispatch still needs a URN.

Maximum string length: 255
Pattern: ^\S*$
work_email
string<email> | null

Stored lowercased - 3rd dedup key (with personal_email).

personal_email
string<email> | null

Personal address; stored lowercased, a dedup key together with work_email.

work_phone_number
string | null

Plain string, E.164 preferred.

Maximum string length: 255
personal_phone_number
string | null

Plain string, E.164 preferred; richer phone sets are field values.

Maximum string length: 255
company_sid
string | null

Must exist; the person's company then resolves from the account (context.company).

Required string length: 18
Pattern: ^cr_co_
company_name
string | null

A name that is not an account, a manual observation; read only when company_sid is absent.

Maximum string length: 255
tag_sids
string[] | null

Each tag must exist (cr_tg_…).

Required string length: 18
Pattern: ^cr_tg_
external_refs
object | null

Free-form CRM sync map; keys integration-defined, stored as-is.

on_duplicate
enum<string>

skip = return the existing row; move = re-home it into playtable_sid. Applies on BOTH dedup tiers when given. Omitted: an identity-tier hit is 409, a flag-tier match (nickname, phone) is born flagged.

Available options:
skip,
move

Response

create success envelope.

success
enum<boolean>
required
Available options:
true
operation
enum<string>
required
Available options:
create
item
object
required
already_exists
boolean
required
meta
object
required