> ## Documentation Index
> Fetch the complete documentation index at: https://botpress-ak-docs-20-document-updating-variables-from-outsid.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# getOrCreateConversation

> Retrieves the [Conversation](#schema_conversation) object for a valid identifier. If the conversation does not exist, it will be created.



## OpenAPI

````yaml runtime-openapi.json post /v1/chat/conversations/get-or-create
openapi: 3.0.0
info:
  title: Botpress Runtime API
  description: API for Botpress Runtime
  version: 1.52.1
servers:
  - url: https://api.botpress.cloud
security:
  - BearerAuth: []
tags:
  - name: documented
paths:
  /v1/chat/conversations/get-or-create:
    post:
      tags:
        - Endpoints
      description: >-
        Retrieves the [Conversation](#schema_conversation) object for a valid
        identifier. If the conversation does not exist, it will be created.
      operationId: getOrCreateConversation
      parameters:
        - name: x-bot-id
          in: header
          description: Bot id
          required: true
          schema:
            type: string
        - name: x-integration-id
          in: header
          description: Integration id
          required: false
          schema:
            type: string
        - name: x-integration-alias
          in: header
          description: Integration alias
          required: false
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/getOrCreateConversationBody'
      responses:
        '200':
          $ref: '#/components/responses/getOrCreateConversationResponse'
        default:
          $ref: '#/components/responses/getOrCreateConversationResponse'
components:
  requestBodies:
    getOrCreateConversationBody:
      description: Conversation data
      content:
        application/json:
          schema:
            type: object
            properties:
              channel:
                type: string
                maxLength: 200
                description: Channel name
              tags:
                type: object
                additionalProperties:
                  type: string
                  maxLength: 500
                description: Tags for the [Conversation](#schema_conversation)
              integrationName:
                type: string
                maxLength: 200
                description: >-
                  [DEPRECATED] To create a conversation from within a bot, call
                  an action of the integration instead.
                deprecated: true
              discriminateByTags:
                type: array
                items:
                  type: string
                  maxLength: 500
                description: >-
                  Optional list of tag names to use for strict matching when
                  looking up existing conversations. If provided, all specified
                  tags must match exactly for a conversation to be considered a
                  match. For example, with an existing conversation whose tags
                  are {"foo": "a", "bar": "b", baz: "c"}: Without this
                  parameter, ALL tags must match exactly. With ["bar","baz"],
                  all listed tags must match their values, and other tags are
                  not considered.
            required:
              - channel
              - tags
            title: getOrCreateConversationBody
            additionalProperties: false
  responses:
    getOrCreateConversationResponse:
      description: >-
        Returns a [Conversation](#schema_conversation) object if a valid
        identifier was provided. Returns [an error](#errors) otherwise
      content:
        application/json:
          schema:
            type: object
            properties:
              conversation:
                $ref: '#/components/schemas/Conversation'
            required:
              - conversation
            title: getOrCreateConversationResponse
            additionalProperties: false
  schemas:
    Conversation:
      type: object
      properties:
        id:
          type: string
          minLength: 28
          maxLength: 36
          description: Id of the [Conversation](#schema_conversation)
        currentTaskId:
          type: string
          minLength: 28
          maxLength: 36
          description: Id of the current [Task](#schema_task)
        currentWorkflowId:
          type: string
          minLength: 28
          maxLength: 36
          description: Id of the current [Workflow](#schema_workflow)
        createdAt:
          type: string
          format: date-time
          description: >-
            Creation date of the [Conversation](#schema_conversation) in ISO
            8601 format
        updatedAt:
          type: string
          format: date-time
          description: >-
            Updating date of the [Conversation](#schema_conversation) in ISO
            8601 format
        channel:
          type: string
          description: >-
            Name of the channel where the [Conversation](#schema_conversation)
            is happening
        integration:
          type: string
          description: >-
            Name of the integration that created the
            [Conversation](#schema_conversation)
        tags:
          type: object
          additionalProperties:
            type: string
          description: >-
            Set of [Tags](/docs/developers/concepts/tags) that you can attach to
            a [Conversation](#schema_conversation). The set of
            [Tags](/docs/developers/concepts/tags) available on a
            [Conversation](#schema_conversation) is restricted by the list of
            [Tags](/docs/developers/concepts/tags) defined previously by the
            [Bot](#schema_bot). Individual keys can be unset by posting an empty
            value to them.
      required:
        - id
        - createdAt
        - updatedAt
        - channel
        - integration
        - tags
      description: >-
        The [Conversation](#schema_conversation) object represents an exchange
        of messages between one or more users. A
        [Conversation](#schema_conversation) is always linked to an
        integration's channels. For example, a Slack channel represents a
        conversation.
      additionalProperties: false
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````