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

# Push email-delivery stats for a feedback form

> <Warning>
The Feedback Management API is currently in **BETA**, therefore the following endpoints are subject to modification, given a **2 week notice**.

If you are planning to use any of them, please **notify us** so we will be able to keep you informed about upcoming changes.
</Warning>

This endpoint lets you push one day of email-delivery funnel metrics (sent, delivered, opened,
clicked, bounced) for a feedback form and business, typically reported by your Email Service
Provider (ESP).

It upserts on `(feedback_form_id, business_id, date)`: `sent` and `clicked` always overwrite
the row, while the optional metrics (`processed`, `delivered`, `opened`, `bounced`) keep their
previous value when omitted or `null`, defaulting to `0` only on a brand-new row.

Rows created here are always stored with `source: external`, and feed the `survey.sent`,
`survey.delivered`, `survey.opened`, `survey.clicked` and `survey.error_bounces`
[analytics metrics](/api-reference/feedback-analytics/feedback-analytics-metrics).




## OpenAPI

````yaml /assets/openapi/openapi-bundled.yaml post /feedback/feedback_form/stats
openapi: 3.1.0
info:
  title: Partoo Rest API
  version: v2
  license:
    name: © Copyright Partoo
    url: https://www.partoo.co/en/gtu-api/
  x-logo:
    url: >-
      https://partoo-client-images.s3.amazonaws.com/logo-partoo-restapi-white.png
  description: >
    ## Introduction

    The Partoo Rest API allows you to automate all the actions that are possible
    to do in the Partoo Web Application.


    The Partoo Rest API can be used for many different purposes:
      - Create/update/delete your businesses & users if you are a client.
      - Create/subscribe/manage organizations, businesses & users if you are a reseller.
      - Retrieve data on businesses you have access to if you are a publisher.
      - ...
servers:
  - url: https://api.partoo.co/v2
    description: Production server
  - url: https://api.sandbox.partoo.co/v2
    description: Sandbox server (dev environment for clients & partners)
security:
  - ApiKeyAuth: []
paths:
  /feedback/feedback_form/stats:
    post:
      tags:
        - Feedback Management
      summary: Push email-delivery stats for a feedback form
      description: >
        <Warning>

        The Feedback Management API is currently in **BETA**, therefore the
        following endpoints are subject to modification, given a **2 week
        notice**.


        If you are planning to use any of them, please **notify us** so we will
        be able to keep you informed about upcoming changes.

        </Warning>


        This endpoint lets you push one day of email-delivery funnel metrics
        (sent, delivered, opened,

        clicked, bounced) for a feedback form and business, typically reported
        by your Email Service

        Provider (ESP).


        It upserts on `(feedback_form_id, business_id, date)`: `sent` and
        `clicked` always overwrite

        the row, while the optional metrics (`processed`, `delivered`, `opened`,
        `bounced`) keep their

        previous value when omitted or `null`, defaulting to `0` only on a
        brand-new row.


        Rows created here are always stored with `source: external`, and feed
        the `survey.sent`,

        `survey.delivered`, `survey.opened`, `survey.clicked` and
        `survey.error_bounces`

        [analytics
        metrics](/api-reference/feedback-analytics/feedback-analytics-metrics).
      operationId: upsertFeedbackFormStats
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - feedback_form_id
                - business_id
                - date
                - sent
                - clicked
              properties:
                feedback_form_id:
                  allOf:
                    - $ref: '#/components/schemas/FeedbackFormId'
                business_id:
                  allOf:
                    - $ref: '#/components/schemas/BusinessId'
                date:
                  type: string
                  format: date
                  description: Day these metrics apply to
                  example: '2026-06-01'
                sent:
                  type: integer
                  minimum: 0
                  description: Number of survey emails sent
                  example: 100
                clicked:
                  type: integer
                  minimum: 0
                  description: Number of survey link clicks (from the email)
                  example: 10
                processed:
                  type:
                    - integer
                    - 'null'
                  minimum: 0
                  description: >-
                    Number of survey emails accepted for delivery by the ESP.
                    Omit or send `null` to leave unchanged.
                  example: 95
                delivered:
                  type:
                    - integer
                    - 'null'
                  minimum: 0
                  description: >-
                    Number of survey emails successfully delivered. Omit or send
                    `null` to leave unchanged.
                  example: 90
                opened:
                  type:
                    - integer
                    - 'null'
                  minimum: 0
                  description: >-
                    Number of survey emails opened. Omit or send `null` to leave
                    unchanged.
                  example: 50
                bounced:
                  type:
                    - integer
                    - 'null'
                  minimum: 0
                  description: >-
                    Number of survey emails that bounced. Omit or send `null` to
                    leave unchanged.
                  example: 5
            example:
              feedback_form_id: 674d791c13c9d976e20001b1
              business_id: 5409c35a97bbc544d8e26737
              date: '2026-06-01'
              sent: 100
              clicked: 10
              processed: 95
              delivered: 90
              opened: 50
              bounced: 5
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/feedback_form_stats'
              example:
                feedback_form_id: 674d791c13c9d976e20001b1
                business_id: 5409c35a97bbc544d8e26737
                date: '2026-06-01'
                source: external
                org_id: 42
                sent: 100
                processed: 95
                delivered: 90
                opened: 50
                clicked: 10
                error_bounces: 5
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
components:
  schemas:
    FeedbackFormId:
      type: string
      description: The unique identifier of the form
      example: 674d791c13c9d976e20001b1
    BusinessId:
      description: Business id
      type: string
      example: 5409c35a97bbc544d8e26737
    feedback_form_stats:
      type: object
      description: >-
        One day of email-delivery funnel metrics for a (feedback_form, business)
        pair.
      properties:
        feedback_form_id:
          allOf:
            - $ref: '#/components/schemas/FeedbackFormId'
        business_id:
          allOf:
            - $ref: '#/components/schemas/BusinessId'
        date:
          type: string
          format: date
          description: Day these metrics apply to
          example: '2026-06-01'
        source:
          type: string
          enum:
            - external
            - internal
          description: >
            Origin of the emailing volume.


            Always `external` for rows created through this endpoint (i.e.
            reported by your ESP).
          example: external
        org_id:
          type: integer
          description: The organization ID the feedback form belongs to
          example: 42
        sent:
          type: integer
          minimum: 0
          description: Number of survey emails sent
          example: 100
        processed:
          type: integer
          minimum: 0
          description: Number of survey emails accepted for delivery by the ESP
          example: 95
        delivered:
          type: integer
          minimum: 0
          description: Number of survey emails successfully delivered
          example: 90
        opened:
          type: integer
          minimum: 0
          description: Number of survey emails opened
          example: 50
        clicked:
          type: integer
          minimum: 0
          description: Number of survey link clicks (from the email)
          example: 10
        error_bounces:
          type: integer
          minimum: 0
          description: Number of survey emails that bounced
          example: 5
  responses:
    '400':
      description: Your request is incorrect
      content:
        application/json:
          schema:
            description: |
              Error that occcurs when your request is incorrect
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  json:
                    type: object
    '401':
      description: You are not authenticated
      content:
        application/json:
          schema:
            description: Error that occurs when you are not authenticated
            type: object
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  authentication:
                    type: string
                    default: User not authenticated
    '404':
      description: Resource does not exist
      content:
        application/json:
          schema:
            description: >-
              Error that occcurs when you are trying to reach a resource that
              does not exist
            type: object
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  json:
                    type: string
                    default: Resource not found
  securitySchemes:
    ApiKeyAuth:
      description: >
        The authentication system on Partoo API is using API Key that should be
        put in the header of the request (the name of the header is `x-APIKey`).
        An api_key is linked to a user. This user's role will give you different
        access level to the API features.
      type: apiKey
      in: header
      name: x-APIKey

````