Portal Community

When to Use

Configuration

Connection

FieldRequiredDescription
accessTokenRequiredLong-lived Instagram access token stored in BizFirst Credentials Manager.
igUserIdRequiredYour Instagram Business/Creator account ID.

Operation

FieldRequiredDescription
resourceRequiredMust be comments.
operationRequiredMust be list.
mediaIdRequiredThe Instagram media object ID whose comments to list.
limitOptionalNumber of comments per page. Default 25. Clamped to 1–100.
afterOptionalCursor from previous page's paging.after for forward pagination.

Sample Configuration JSON

{
  "resource": "comments",
  "operation": "list",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "17841400000000000",
  "mediaId": "17855590000000001",
  "limit": 50
}

Validation Errors

ErrorCause
accessToken is requiredaccessToken field is missing or empty.
mediaId is requiredmediaId field is missing or empty.
Graph API error 100Media ID does not exist or is not owned by this account.

Output

Success Port

FieldTypeDescription
statusstring"success"
commentsarrayArray of comment objects. Each contains id, text, username, timestamp and other requested fields.
paging.beforestringCursor for the previous page.
paging.afterstringCursor for the next page. Empty when on last page.
paging.nextUrlstringFull Graph API URL for the next page.
paging.previousUrlstringFull Graph API URL for the previous page.
payloadstringRaw JSON response.

Error Port

FieldTypeDescription
statusstring"error"
errorCodestringGraph API error code.
errorMessagestringError description.
payloadstringRaw error response.

Sample Output JSON

{
  "status": "success",
  "comments": [
    {
      "id": "17858893269000001",
      "text": "Love this! Where can I buy?",
      "username": "customer_jane",
      "timestamp": "2025-06-15T16:42:00+0000"
    },
    {
      "id": "17858893269000002",
      "text": "Great quality as always",
      "username": "loyal_follower",
      "timestamp": "2025-06-15T17:05:00+0000"
    }
  ],
  "paging": {
    "before": "QVFIUm...",
    "after": "QVFIUm2...",
    "nextUrl": "https://graph.facebook.com/v18.0/...",
    "previousUrl": ""
  }
}

Expression Reference

ExpressionValue
{{ $output.instagram.comments }}Full comments array
{{ $output.instagram.comments[0].id }}First comment's ID
{{ $output.instagram.comments[0].text }}First comment's text
{{ $output.instagram.comments[0].username }}First commenter's username
{{ $output.instagram.paging.after }}Next-page cursor

Node Policies & GuardRails

Examples

Giveaway entry collection

{
  "resource": "comments",
  "operation": "list",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "{{ $env.IG_USER_ID }}",
  "mediaId": "{{ $input.giveawayPostId }}",
  "limit": 100
}

Retrieves up to 100 comments per page. The next node loops through comments array entries to extract username values for the prize draw, paginating via paging.after until the cursor is empty.

Keyword moderation scan

{
  "resource": "comments",
  "operation": "list",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "17841400000000000",
  "mediaId": "{{ $trigger.body.value.mediaId }}",
  "limit": 50
}

Triggered when a post receives a new comment via webhook. Retrieves recent comments and pipes them through a keyword filter node that routes policy-violating comments to comment/hide.