Skip to main content
POST
/
contacts
/
update
curl -X POST https://api.guayaba.ai/contacts/update \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gua_a1b2c3d4_your-api-key-here" \
  -d '{
    "phone": "+11234567890",
    "status": "fulfilled"
  }'
{
  "success": true,
  "message": "Contact updated successfully",
  "contact": {
    "id": "contact-uuid-here",
    "phoneNumber": "+11234567890",
    "name": "John Doe",
    "campaignId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "fulfilled",
    "fulfilledAt": "2026-04-22T15:30:00.000Z",
    "updatedAt": "2026-04-22T15:30:00.000Z"
  }
}
Updates a contact identified by their phone number — no contact ID required. Use this to change a contact’s status or move them to a different campaign from your own systems. Actions are logged as contacts-actions-by-api so they’re tracked separately from in-app actions.
This endpoint requires an X-API-Key header. See Authentication for details.

Request Body

phone
string
required
Phone number of the contact to update, in E.164 format (e.g., +11234567890).
status
string
New status for the contact. Use List Statuses to retrieve valid values. Default system statuses include active, paused, fulfilled, DNC, not-qualifies, not-interested, not-answering, wrong-number, and talk-to-human.
campaignId
string (UUID)
New campaign to move the contact to.
At least one of status or campaignId must be provided. You can send both in the same request.

Behavior Notes

Setting a contact to any terminal status (fulfilled, paused, DNC, not-qualifies, not-interested, not-answering, wrong-number) automatically cancels all scheduled calls, SMS, WhatsApp messages, and triggers for that contact.
Setting the status back to active reschedules outreach based on the contact’s campaign configuration.
Changing campaignId cancels scheduled actions from the old campaign and schedules new actions based on the new campaign’s configuration.
Updates made through this endpoint are logged as contacts-actions-by-api and do not inflate in-app action stats.

Response

success
boolean
Always true on a successful request.
message
string
Human-readable confirmation message.
contact
object
The updated contact object.
curl -X POST https://api.guayaba.ai/contacts/update \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gua_a1b2c3d4_your-api-key-here" \
  -d '{
    "phone": "+11234567890",
    "status": "fulfilled"
  }'
{
  "success": true,
  "message": "Contact updated successfully",
  "contact": {
    "id": "contact-uuid-here",
    "phoneNumber": "+11234567890",
    "name": "John Doe",
    "campaignId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "fulfilled",
    "fulfilledAt": "2026-04-22T15:30:00.000Z",
    "updatedAt": "2026-04-22T15:30:00.000Z"
  }
}