MentionBird
contacts_batch
Create or update up to 1,000 contacts in one request. Match each entry against every supplied identifier (`email`, `phone_number`, and `external_id`), or set `match_on` to use one identifier. Optionally add all successful contacts to up to 10 audiences. Results follow submission order.
Remote bird/mcp
Remote (network-hosted)
Other tools also called contacts_batch?
See providers with this name
Input Schema
{
"type": "object",
"properties": {
"contacts": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"data": {
"type": [
"null",
"object"
],
"additionalProperties": true
},
"email": {
"type": [
"null",
"string"
]
},
"last_name": {
"type": [
"null",
"string"
]
},
"first_name": {
"type": [
"null",
"string"
]
},
"external_id": {
"type": [
"null",
"string"
]
},
"phone_number": {
"type": [
"null",
"string"
]
}
},
"additionalProperties": false
},
"description": "Contacts to create or update, matched automatically against every identifier an entry supplies. Existing contacts are updated with the fields each entry supplies; omitted fields keep their stored values, so an entry can set fields but never clear them. Unmatched entries create contacts."
},
"match_on": {
"type": "string",
"examples": [
"email",
"phone_number",
"external_id"
],
"description": "Optional field used to match every entry to an existing contact. Every entry must include this field when set. When omitted, each entry is matched against all identifiers it supplies. No match creates a contact, one match updates it, and identifiers that match multiple contacts return an error naming each contact."
},
"data_mode": {
"type": "string",
"examples": [
"merge",
"replace"
],
"description": "How a supplied data object is applied to an existing contact. The default merge mode adds the supplied keys to the contact's stored custom values. A key with a null value deletes that key. The replace mode overwrites the whole stored data map with the supplied map. In both modes a contact that omits data keeps its stored values unchanged, so an import that touches one attribute never wipes the others."
},
"audience_ids": {
"type": [
"null",
"array"
],
"items": {
"type": "string"
},
"description": "Audiences every contact in this request is added to. Contacts that are already members are left in place. Every listed audience must exist, or the whole request fails with a validation error and nothing is written."
},
"idempotency_key": {
"type": "string",
"description": "Client-supplied deduplication key; a retry with the same key replays the original result instead of acting twice."
}
}
}