Create or resolve a draft Team Member
Creates a same-organization draft Team Member for external integrations, or returns an existing member matched by Salesforce identity, email, or External Reference. Draft Team Members can own imported records without being invited to sign in. Requires Idempotency-Key and team_members:write.
Creates a same-organization draft Team Member for external integrations, or returns an existing member matched by Salesforce identity, email, or External Reference. Draft Team Members can own imported records without being invited to sign in. Requires Idempotency-Key and team_members:write.
Create or resolve a draft Team Member. Use an organization API key with team_members:write. Check the response envelope and meta.requestId before triggering dependent workflow steps.
Required scopes
Parameters
No path or query parameters.
Request body
| Field | Type | Description |
|---|---|---|
| string | null | Optional unless marked required. | |
| firstName | string | null | Optional unless marked required. |
| lastName | string | null | Optional unless marked required. |
| displayName | string | null | Optional unless marked required. |
| phone | string | null | Optional unless marked required. |
| role | OWNER | ADMIN | SALES_MANAGER | SALES_USER | OPERATIONS_MANAGER | OPERATIONS_USER | TECHNICIAN | MEMBER | Optional unless marked required. |
| status | string | Optional unless marked required. |
| salesforceUserId | string | null | Optional unless marked required. |
| salesforceServiceResourceId | string | null | Optional unless marked required. |
| externalReferences[] | array<object> | Optional unless marked required. |
| externalReferences[].externalSystemrequired | string | Optional unless marked required. |
| externalReferences[].externalObjectrequired | string | Optional unless marked required. |
| externalReferences[].externalIdrequired | string | Optional unless marked required. |
| externalReferences[].metadata | object | Optional unless marked required. |
{
"email": "technician@example.com",
"firstName": "Grace",
"lastName": "Hopper",
"role": "TECHNICIAN",
"status": "DRAFT"
}Responses
Existing Team Member envelope
#/components/schemas/TeamMemberEnvelope
Created draft Team Member envelope
#/components/schemas/TeamMemberEnvelope
Validation or idempotency error
#/components/schemas/OrgApiError
Missing or invalid organization API key
#/components/schemas/OrgApiError
Organization billing access or an endpoint-specific business quota denied the request
#/components/schemas/OrgApiError
Missing required scope: team_members:write
#/components/schemas/OrgApiError
External Reference/idempotency conflict, or SEAT_LIMIT_REACHED when schedulable=true exceeds included seats.
#/components/schemas/OrgApiError
Rate limit exceeded
#/components/schemas/OrgApiError
Errors
Static examples
curl -X POST "$SOLAROS_BASE_URL/api/v1/team-members" \
-H "Authorization: Bearer $SOLAROS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SOLAROS_IDEMPOTENCY_KEY" \
--data '{"email":"technician@example.com","firstName":"Grace","lastName":"Hopper","role":"TECHNICIAN","status":"DRAFT"}'