Team Members — Pitfalls
Setting limit higher than 10
Symptom. GET /team-members?limit=50 returns 400 BAD_REQUEST with "Limit should be between 1 and 10".
Cause. Team-member listings cap limit at 10, lower than the 100 used for leads and actions.
Fix. Set limit ≤ 10 and paginate via skip for larger result sets. The response includes total_count so you know how many pages remain.
Hitting the license seat cap
Symptom. POST /team-members returns 402 BUY_LICENSE.
Cause. The workspace has used all its licensed seats.
Fix. Either delete an unused team member in the dashboard to free a seat, or purchase additional licenses. License seats are independent of the active/inactive state — inactive members still consume a seat.
Looking up a deleted member
Symptom. GET /team-members/{email} returns 404 TEAM_MEMBER_NOT_FOUND for a member you know existed.
Cause. Soft-deleted members 404 by default.
Fix. Pass includeDeleted=true:
bash
curl "https://next.telecrm.in/autoupdate/v2/enterprise/{enterpriseId}/team-members/jane.doe@example.com?includeDeleted=true" \
-H "Authorization: Bearer YOUR_SYNC_TOKEN"Email casing mismatch
Symptom. Email lookup or state change returns 404 even though the email is correct.
Cause. Email is case-insensitive but must be exact otherwise — leading/trailing whitespace and Unicode confusables (e.g. lookalike characters in domain names) cause misses.
Fix. Trim and normalize the email before sending. Compare against the value returned from GET /team-members — that's the canonical form.
Phone number format on create
Symptom. POST /team-members returns 400 with "Invalid phone_number format".
Cause. Phone numbers must be country code + national number with no symbols and no spaces. +91 98765 43210, 91-9876-5432-10, and +919876543210 are all rejected; 919876543210 is accepted.
Fix. Strip everything except digits and ensure the country code is the leading prefix.
Confusing state_change with team-members
Symptom. Calls to /team-members/state_change 404.
Cause. The availability endpoint is a separate path: /teammember/state_change (singular, no hyphen) — not under the /team-members/ collection.
Fix. Use POST /teammember/state_change for state changes; use /team-members/... for everything else.
Forgetting that no password = invitation flow
Symptom. A newly created team member can't log in.
Cause. Without a password in the create body, the member is in INVITED state and must accept the invitation email before they can log in.
Fix. Either provide a password at creation time (and have your provisioning system manage rotation), or check the member's email for the invitation.