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

# Create a new Feedback Record



## OpenAPI

````yaml post /feedbacks
openapi: 3.0.1
info:
  title: Reforge Insights (formerly Monterey AI) API
  version: 1.0.5
servers:
  - url: https://insights.reforge.com/api/v1
security: []
paths:
  /feedbacks:
    post:
      summary: Create a new Feedback Record
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - description
              properties:
                title:
                  type: string
                  description: The feedback title, when provided
                  nullable: true
                description:
                  type: string
                  description: >-
                    The feedback content. Can be plain text or include basic
                    HTML elements
                isTranscript:
                  type: boolean
                  description: Whether the feedback is a transcript
                  nullable: true
                tags:
                  description: >-
                    A list of string tags to apply to the feedback. If excluded
                    or null value provided, tags will be auto-generated based on
                    description content.
                  type: array
                  items:
                    type: string
                  nullable: true
                isExternalContactId:
                  type: boolean
                  description: >-
                    True if the contactId/contact.id is an external ID, false if
                    it is a Reforge Insights contact ID.
                  default: false
                contact:
                  description: >-
                    The Contact who provided the feedback. If providing an
                    external ID, set isExternalContactId to true.
                  oneOf:
                    - $ref: '#/components/schemas/FindOrCreateCustomer'
                    - $ref: '#/components/schemas/AssociateExistingCustomer'
                contactId:
                  type: string
                  description: >-
                    ID of Contact to associate to.  If providing an external ID,
                    set isExternalContactId to true.
                  nullable: true
                isExternalAccountId:
                  type: boolean
                  description: >-
                    True if the accountId/account.id is an external ID, false if
                    it is a Reforge Insights account ID.
                  default: false
                account:
                  description: >-
                    The customer account to which the feedback should be
                    associated. If providing an external ID, set
                    isExternalAccountId to true.
                  oneOf:
                    - $ref: '#/components/schemas/FindOrCreateCustomerAccount'
                    - $ref: '#/components/schemas/AssociateExistingCustomerAccount'
                  nullable: true
                accountId:
                  type: string
                  description: >-
                    ID of CustomerAccount to associate to.  If providing an
                    external ID, set isExternalAccountId to true.
                  nullable: true
                source:
                  type: string
                  description: >-
                    The source of the feedback. Default: API (when excluded or
                    provided as null
                  nullable: true
                sourceId:
                  type: string
                  description: >-
                    A unique identifier for this specific record from the source
                    system (e.g., a Jira ticket key like "ABC-1234", a Zendesk
                    ticket ID, or a Salesforce case number). This is NOT the
                    same as the `source` field—it identifies the individual
                    record, not the integration. Used for deduplication and
                    linking back to the original record.
                  nullable: true
                shouldUnflattenSourceData:
                  type: boolean
                  description: >-
                    Whether to unflatten sourceData that are meant to be nested
                    objects for example `{ "plan.type": "Pro" }` will be
                    unflattened to `{ "plan": { "type": "Pro" } }`
                  nullable: true
                sourceData:
                  type: object
                  description: >-
                    Dictionary to provide other key-value pairs such as the url,
                    view identifier, or other information
                  nullable: true
                rating:
                  type: number
                  description: The numeric rating (integer)
                  nullable: true
      responses:
        '201':
          description: The feedback was created successfully
          content:
            application/json:
              schema:
                properties:
                  feedback:
                    $ref: '#/components/schemas/Feedback'
      security:
        - BearerAuth: []
components:
  schemas:
    FindOrCreateCustomer:
      description: >-
        Used when associating to a new customer, or when not knowing the ID, for
        which it will be de-duplicated by the email field. The `email` field can
        be any string, such as a valid email OR a unique identifier from your
        own system.
      type: object
      nullable: true
      properties:
        name:
          type: string
        email:
          type: string
        sourceData:
          type: object
          description: >-
            Dictionary to provide other key-value pairs such as the url,
            identifier, or other information
          nullable: true
    AssociateExistingCustomer:
      description: >-
        Used when associating to an existing, known customer, the `id` is the
        customer ID from Reforge Insights. If the a customer with the provided
        ID does not exist, the feedback will not be associated to a customer.
      type: object
      nullable: true
      properties:
        id:
          description: The Reforge Insights ID of the customer
          type: string
    FindOrCreateCustomerAccount:
      description: >-
        Used when associating to a new customer account, or when not knowing the
        ID, for which it will be de-duplicated by the name or domain field. The
        `name` and 'domain' fields can be any string, such as a valid
        name/domain OR a unique identifier from your own system.
      type: object
      nullable: true
      properties:
        name:
          type: string
        domain:
          type: string
        contractValue:
          type: number
          nullable: true
        sourceData:
          type: object
          description: >-
            Dictionary to provide other key-value pairs such as the url,
            identifier, or other information
          nullable: true
    AssociateExistingCustomerAccount:
      description: >-
        Used when associating to an existing, known customer account, the `id`
        is the customer account ID from Reforge Insights. If the a customer
        account with the provided ID does not exist, the feedback will not be
        associated to a customer account.
      type: object
      nullable: true
      properties:
        id:
          description: The Reforge Insights ID of the customer account
          type: string
    Feedback:
      type: object
      properties:
        id:
          type: string
        description:
          type: string
        customerId:
          type: string
        projectId:
          type: string
        rating:
          type: number
        sourceId:
          type: string
        sourceData:
          type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer authentication header of the form Bearer <token>, where <token>
        is your auth token.

````