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

# Add a comment to a Social Selling post

> Post a LinkedIn comment on a Social Selling post from one of your connected identities. Name the post with exactly one of `postId` (tracked post id, the `id` of `list_social_selling_posts`) or `publishingPostId` (its `publishingPostId`, or a scheduled post’s id). The post must already be published on LinkedIn. `status: POSTED` means the comment was sent now and appears on LinkedIn within minutes; `PENDING_APPROVAL` means the identity belongs to a colleague who reviews comments from it: the comment waits until that owner approves it (they are emailed a review link) and nothing reaches LinkedIn before. Optionally `reactionsAmount` (0–100) other identities react to the comment, only when it posts right away (`POSTED`): a `PENDING_APPROVAL` comment gets no reactions, not even after the owner approves it; `reactionsScheduled` in the answer says how many were scheduled. Users restricted to specific identities can only comment on posts of their own identities: any other post, a third-party post they tracked included, answers 404. Side effects: persists the comment, starts the LinkedIn comment workflow (or emails the owner), and creates the publishing post of a tracked post that has none. Not idempotent: a retry posts the comment again.

    > **Required scope:** `SOCIAL_SELLING_WRITE`
    >
    > **Rate limit:** 30 requests per minute



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json post /v1/social-selling/comments
openapi: 3.1.0
info:
  title: Enginy API
  version: 1.0.0
  description: Public API for Enginy platform
servers:
  - url: https://openapi.enginy.ai
    description: Configured server
security: []
tags:
  - name: AI Variables
    description: >-
      Manage AI variables and discover the entity fields you can reference in
      prompts and entity requests.
  - name: Inbox
    description: >-
      Inbox endpoints for listing contact threads, reading thread messages,
      managing tags, and sending manual replies.
  - name: Workflows
    description: >-
      Build, validate, publish, run, and inspect advanced (graph) workflows,
      plus the block/condition catalog needed to author a workflow plan.
paths:
  /v1/social-selling/comments:
    post:
      tags:
        - Social Selling
      summary: Add a comment to a Social Selling post
      description: >-
        Post a LinkedIn comment on a Social Selling post from one of your
        connected identities. Name the post with exactly one of `postId`
        (tracked post id, the `id` of `list_social_selling_posts`) or
        `publishingPostId` (its `publishingPostId`, or a scheduled post’s id).
        The post must already be published on LinkedIn. `status: POSTED` means
        the comment was sent now and appears on LinkedIn within minutes;
        `PENDING_APPROVAL` means the identity belongs to a colleague who reviews
        comments from it: the comment waits until that owner approves it (they
        are emailed a review link) and nothing reaches LinkedIn before.
        Optionally `reactionsAmount` (0–100) other identities react to the
        comment, only when it posts right away (`POSTED`): a `PENDING_APPROVAL`
        comment gets no reactions, not even after the owner approves it;
        `reactionsScheduled` in the answer says how many were scheduled. Users
        restricted to specific identities can only comment on posts of their own
        identities: any other post, a third-party post they tracked included,
        answers 404. Side effects: persists the comment, starts the LinkedIn
        comment workflow (or emails the owner), and creates the publishing post
        of a tracked post that has none. Not idempotent: a retry posts the
        comment again.

            > **Required scope:** `SOCIAL_SELLING_WRITE`
            >
            > **Rate limit:** 30 requests per minute
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                postId:
                  type: integer
                  exclusiveMinimum: 0
                  description: >-
                    Tracked post id (`id` in `list_social_selling_posts`). Give
                    exactly one of `postId` or `publishingPostId`.
                  example: 501
                publishingPostId:
                  type: integer
                  exclusiveMinimum: 0
                  description: >-
                    Publishing post id (the `publishingPostId` of a tracked
                    post, or of a scheduled post). Give exactly one of `postId`
                    or `publishingPostId`.
                  example: 29371
                identityId:
                  type: integer
                  exclusiveMinimum: 0
                  description: >-
                    The connected LinkedIn identity that comments. It must be an
                    identity the caller may use.
                  example: 12
                text:
                  type: string
                  minLength: 1
                  maxLength: 3000
                  description: The comment text, 1–3000 characters.
                reactionsAmount:
                  type: integer
                  minimum: 0
                  maximum: 100
                  description: >-
                    Reactions other identities add to the comment (0–100), only
                    when it posts right away (`POSTED`): a `PENDING_APPROVAL`
                    comment gets none, even once approved. Default 0.
                reactionTypes:
                  type: array
                  items:
                    type: string
                    enum:
                      - LIKE
                      - PRAISE
                      - EMPATHY
                      - INTEREST
                      - APPRECIATION
                      - ENTERTAINMENT
                  minItems: 1
                  description: >-
                    Reaction kinds for `reactionsAmount`. Defaults to the
                    LinkedIn mix.
              required:
                - identityId
                - text
      responses:
        '201':
          description: >-
            Comment posted (POSTED) or waiting for the identity owner’s approval
            (PENDING_APPROVAL)
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - POSTED
                          - PENDING_APPROVAL
                        description: >-
                          POSTED: sent to LinkedIn now (live within minutes).
                          PENDING_APPROVAL: the identity owner must approve it
                          first; they were emailed a review link and nothing is
                          posted before.
                      publishingPostId:
                        type: number
                        description: Publishing post the comment belongs to.
                      identityId:
                        type: number
                      scheduledCommentId:
                        type: number
                        description: The persisted comment (its review and audit record).
                      reactionsScheduled:
                        type: number
                        description: >-
                          Reactions scheduled on the comment: `reactionsAmount`
                          when POSTED, 0 when PENDING_APPROVAL (an approved
                          comment gets no reactions).
                      appUrl:
                        type: string
                        description: Opens the post in Enginy.
                    required:
                      - status
                      - publishingPostId
                      - identityId
                      - scheduledCommentId
                      - reactionsScheduled
                      - appUrl
                required:
                  - status
                  - message
                  - data
        '400':
          description: >-
            Invalid body (both or neither of `postId` / `publishingPostId`,
            empty or too long text, out-of-range `reactionsAmount`), or the post
            is not published on LinkedIn yet
        '403':
          description: >-
            Social Selling is not enabled for this workspace. Ask your workspace
            admin to enable the feature. Also returned when the identity’s owner
            does not allow colleagues to comment from it (`details.code`:
            IDENTITY_ENGAGEMENT_CONSENT_DENIED).
        '404':
          description: >-
            Post or identity not found in this workspace, or outside the
            caller’s identity scope
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.