> ## Documentation Index
> Fetch the complete documentation index at: https://developers.getfernand.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a conversation

Updates properties of a specific conversation. Status changes and agent assignments trigger automated workflows and notifications. Only changed fields need to be included in the request.


## OpenAPI

````yaml https://api.getfernand.com/openapi.json patch /conversations/{id}
openapi: 3.0.3
info:
  title: Fernand API Documentation
  version: '3.0'
  description: This is the documentation for the [Fernand](https://getfernand.com) API.
  termsOfService: https://getfernand.com/terms
  contact:
    name: Fernand Support
    url: https://getfernand.com
    email: support@getfernand.com
  x-logo:
    url: https://app.getfernand.com/images/favicon/icon_128.png
servers:
  - url: https://api.getfernand.com
    description: ''
    x-last-modified: 1764750693905
security:
  - apiKeyHeader: []
externalDocs:
  description: You can access our documentation online by visiting https://api.fernand.help
  url: https://api.fernand.help
paths:
  /conversations/{id}:
    patch:
      tags:
        - Conversations
      summary: Update a conversation
      description: >-
        Updates properties of a specific conversation. Status changes and agent
        assignments trigger automated workflows and notifications. Only changed
        fields need to be included in the request.
      operationId: updateConversation
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
          description: ID of the conversation to update.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum:
                    - OPENED
                    - CLOSED
                    - SPAM
                    - SNOOZED
                  description: >-
                    New status for the conversation (requires
                    conversation.status permission).
                snooze_until:
                  type: string
                  description: >
                    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:
                  type: integer
                  format: int64
                  nullable: true
                  description: >-
                    ID of agent to assign. Use null to unassign (requires
                    conversation.assign permission).
                agent_email:
                  type: string
                  description: >-
                    Email of agent to assign (alternative to agent_id, requires
                    conversation.assign permission).
                subject:
                  type: string
                  maxLength: 80
                  description: >-
                    New subject line for the conversation (requires
                    conversation.update permission).
                contact_id:
                  type: integer
                  format: int64
                  description: ID of an existing recipient to set as the primary contact.
      responses:
        '200':
          description: Conversation updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conversation'
        '400':
          description: Invalid input or agent not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '403':
          description: Missing required permission for the requested operation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: Conversation not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
components:
  schemas:
    Conversation:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier for the conversation
          example: 12345
        agent_id:
          type: integer
          format: int64
          nullable: true
          description: ID of the agent assigned to this conversation, or null if unassigned
          example: 42
        channel_id:
          type: integer
          format: int64
          nullable: true
          description: ID of the channel through which this conversation is conducted
          example: 1
        contact_id:
          type: integer
          format: int64
          description: ID of the primary contact who initiated the conversation
          example: 789
        subject:
          type: string
          maxLength: 250
          description: >-
            Subject line of the conversation, derived from the first message or
            manually set
          example: Question about billing
        status:
          type: string
          enum:
            - OPENED
            - CLOSED
            - SPAM
            - SNOOZED
          description: Current status of the conversation
          example: OPENED
        snooze_until:
          type: string
          format: date-time
          nullable: true
          description: >-
            ISO 8601 timestamp indicating when a snoozed conversation should
            reappear, or null if not snoozed
          example: '2026-01-22T09:00:00Z'
        last_update:
          type: string
          format: date-time
          description: ISO 8601 timestamp of the last incoming message in the conversation
          example: '2026-01-21T14:30:00Z'
        cursor:
          type: string
          nullable: true
          description: >-
            Pagination cursor for retrieving the next page of conversations in a
            list
          example: cur_1234567890
        tags:
          type: array
          items:
            type: integer
            format: int32
          description: Array of tag IDs associated with this conversation
          example:
            - 1
            - 5
            - 12
        recipients:
          type: array
          items:
            $ref: '#/components/schemas/Recipient'
          description: Array of recipients in the conversation (to, cc, bcc)
      required:
        - id
        - contact_id
        - subject
        - status
        - last_update
        - tags
        - recipients
      x-computed-hash: a4fe82348d6bfb626498c4e69d74844e7073707db3d01b4a3c48aa6f18ab85b1
      x-last-modified: 1769075324
    Recipient:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier for the recipient
          example: 12345
        contact_id:
          type: integer
          format: int64
          description: ID of the contact that is a recipient of this conversation
          example: 789
        kind:
          type: string
          enum:
            - to
            - cc
            - bcc
            - from
            - reply-to
          description: Type of recipient (to, cc, bcc, from, or reply-to)
          example: cc
        conversation_id:
          type: integer
          format: int64
          description: ID of the conversation this recipient belongs to
          example: 456
      required:
        - id
        - contact_id
        - kind
        - conversation_id
      x-computed-hash: cbb8eb868425947be377f9afbf0493c64e9e4591063f9430fa398020dbe2863c
      x-last-modified: 1769075324
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      description: >-
        Authenticate your account by including your secret key in API requests.

        You can manage your API keys in the
        [Dashboard](https://app.getfernand.com/).


        Authentication to the API is performed by using the HTTP Header
        X-API-Key.
      name: X-API-Key
      in: header
      x-last-modified: 1764750344730

````