Skip to main content
POST
/
conversations
/
bulk
Bulk update multiple conversations
curl --request POST \
  --url https://api.getfernand.com/conversations/bulk \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "ids": [
    123
  ]
}
'
{
  "conversations": [
    {
      "id": 12345,
      "contact_id": 789,
      "subject": "Question about billing",
      "status": "OPENED",
      "last_update": "2026-01-21T14:30:00Z",
      "tags": [
        1,
        5,
        12
      ],
      "recipients": [
        {
          "id": 12345,
          "contact_id": 789,
          "kind": "cc",
          "conversation_id": 456
        }
      ],
      "agent_id": 42,
      "channel_id": 1,
      "snooze_until": "2026-01-22T09:00:00Z",
      "cursor": "cur_1234567890"
    }
  ]
}
Updates multiple conversations in a single request. Supports changing status, assigning agents, and managing tags. Status changes to SPAM can optionally block the contact. Changes are applied atomically per conversation, and only successful updates are returned.

Authorizations

X-API-Key
string
header
required

Authenticate your account by including your secret key in API requests. You can manage your API keys in the Dashboard.

Authentication to the API is performed by using the HTTP Header X-API-Key.

Body

application/json
ids
integer<int64>[]
required

Array of conversation IDs to update.

status
enum<string>

New status for the conversations. DELETE will permanently delete them.

Available options:
OPENED,
CLOSED,
SPAM,
SNOOZED,
DELETE
snooze_until
string

When status is SNOOZED, specifies when to unsnooze. Formats:

  • "5m", "+30" (minutes from now)
  • "tomorrow", "monday", "tuesday", etc. (next occurrence at 9am)
  • "one week", "one month" (relative periods)
  • ISO 8601 timestamp (absolute time)
agent_id
integer<int64> | null

ID of agent to assign. Use null to unassign.

agent_email
string

Email of agent to assign (alternative to agent_id).

tag
string

Tag name to add to the conversations.

Maximum string length: 50
untag
string

Tag name to remove from the conversations.

block
boolean

When marking as SPAM, whether to also block the contact (requires contact.block permission).

Response

Conversations updated successfully.

conversations
object[]

Array of successfully updated conversations.