post
https://api.lodgestory.com/api/wp-crm/contacts//batch
Upsert up to 500 contacts in one call. Each row finds its existing contact (matchBy, oldest match wins) — by default by its phone number when it has one, otherwise by its email; a row with a number is never matched on an email several people may share — and is updated with the fields it carries (custom fields merged); rows without a match are created (they need firstName). Bad rows are listed in invalid by position — the others still go through. Every created contact fires the contact.created webhook.
Security:
- The
organisationIdin the URL must match the organisation your JWT was issued for — requests for a different organisation fail with 401. - Requires
CRM_ADMIN,ACCOUNT_OWNER, orCRM_BOTrole; other roles receive 403.
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
400Bad request — not a list, more than 500, or a bad matchBy / channelId
401Unauthorized — invalid/expired JWT or organisation ID does not match the token
403Forbidden — role not permitted
429Too many requests
