202 with a Location header — poll the operation for the outcome. If recipient.external_id is already linked to a contact with a different phone, the operation fails with external_contact_conflict instead of moving the record — repointing a contact is a contact write, and belongs to PUT /contacts/external/{external_id} under the contacts:write scope.curl --location '/flows//executions' \
--header 'Idempotency-Key;' \
--header 'Content-Type: application/json' \
--data '{
"channel_uuid": "82940f04-367e-448c-ae9d-3ae74b17da5e",
"recipient": {
"phone": "+5511999998888",
"external_id": "customer-1847"
},
"variables": {
"property1": "string",
"property2": "string"
}
}'{
"data": {
"uuid": "7d3a1c05-2f88-4b6e-9a10-5c7e2b4d8f31",
"type": "message.send",
"status": "succeeded",
"result": {
"message_uuid": "0f6f7a4e-3b1d-4a9c-9f2b-6d1f0c4a51e7",
"conversation_uuid": "2b7c1a90-95f3-4a1e-bb0e-1d4b6f0f9c22",
"contact_uuid": "9c2e4f31-7a55-4d0b-8f6a-2c9d1e5b7a03",
"status": "sent",
"text": "Olá, Igor! A aula foi adiada."
},
"error": null
}
}