Team & imports
Two surfaces aimed at agencies and migrating customers.
Manage team membership
mutation Invite($input: InviteTeamMemberInput!) {
inviteTeamMember(input: $input) {
membership { _id email role status }
}
}{
"input": {
"email": "designer@agency.example",
"role": "EDITOR",
"profileId": "65f..."
}
}Roles are coarse-grained on purpose — ADMIN, EDITOR, VIEWER — and
gate the same dashboard surfaces you'd expect. Custom roles are an
Enterprise add-on. removeTeamMember, updateTeamMemberRole, and
resendTeamInvite round out the surface.
Audit log
Every privileged action emits an audit entry. Read it with
teamAuditLog(filter, pagination):
query Audit($filter: AuditLogFilterInput, $pagination: PaginationInput) {
teamAuditLog(filter: $filter, pagination: $pagination) {
items {
_id action actorId profileId metadata createdAt
}
total page limit
}
}The same data is exportable as CSV via exportTeamAuditLogCSV.
Import from another platform
mutation Import($input: ImportLinksInput!) {
importLinks(input: $input) {
job { _id status sourcePlatform totalLinks importedLinks errors }
}
}Supported sourcePlatform values: LINKTREE, BEACONS, CARRD. The
return is a job — poll importJob(id) to follow the run, or subscribe
to your webhook of choice for completion notifications.
Selective imports
importLinks accepts a dryRun: true flag that returns the candidate
link list without writing anything. Use it to render an "approve which
links to bring across" UI before committing the actual import.