Portal Community
Webhook setup required: Before using this trigger, configure a webhook subscription in the Meta Developer Console for your app. Set your BizFirst webhook endpoint URL, configure the verify_token, and subscribe to the Instagram topic fields you need (comments, messages, feed, mentions, story_insights, live_comments).

When to Use

Configuration

Webhook Security

FieldRequiredDescription
verifyTokenRequiredA secret string you define and configure in the Meta Developer Console. Used to verify webhook subscription handshake requests from Meta.
appSecretOptionalYour Meta app secret, used to validate HMAC-SHA256 webhook payload signatures. Not recommended for production — use appSecretVaultKey.
appSecretVaultKeyOptionalBizFirst Credentials Manager key referencing the Meta app secret. Preferred over appSecret for security. One of appSecret or appSecretVaultKey is required.

Event Filtering

FieldRequiredDescription
resourceRequiredMust be trigger.
operationRequiredMust be receive-event.
eventTypesOptionalArray (or JSON string) of event type names to process. If omitted, all event types are emitted. Supported values: comments, messages, story_insights, feed, mentions, live_comments.
Signature validation is mandatory: Always configure appSecretVaultKey. Without signature validation, your webhook endpoint will accept forged payloads from any source. Meta signs every webhook delivery with an HMAC-SHA256 hash of the payload body using your app secret. The node rejects requests with an invalid or missing X-Hub-Signature-256 header.

Sample Configuration JSON

{
  "resource": "trigger",
  "operation": "receive-event",
  "verifyToken": "{{ $env.IG_WEBHOOK_VERIFY_TOKEN }}",
  "appSecretVaultKey": "meta_app_secret",
  "eventTypes": ["comments", "messages", "mentions"]
}

Supported Event Types

Event TypeDescriptionRequired Permission
commentsNew comments on your media posts. Includes comment text and author.instagram_manage_comments
messagesIncoming direct messages to your account. Includes message text and sender PSID.instagram_manage_messages
feedActivity on your posts — new posts, reactions, and other feed events.instagram_basic
mentionsWhen another account tags or mentions your account in a post or story.instagram_manage_comments
story_insightsPerformance insights delivered when a story expires (after 24 hours).instagram_manage_insights
live_commentsReal-time comments posted during an active Instagram Live broadcast.instagram_manage_comments

Validation Errors

ErrorCause
verifyToken is requiredverifyToken field is missing or empty.
appSecret or appSecretVaultKey is requiredNeither secret field is provided. Signature validation cannot proceed.
invalid_signatureThe X-Hub-Signature-256 header does not match the computed HMAC-SHA256 of the payload. Payload is rejected.
verify_token_mismatchThe hub.verify_token query parameter in the subscription handshake does not match the configured verifyToken.

Output

Success Port

FieldTypeDescription
statusstring"success"
eventTypestringThe type of event received — one of comments, messages, story_insights, feed, mentions, live_comments.
objectIdstringThe Instagram object ID the event relates to (e.g. post ID, user ID, or media ID).
fieldstringThe webhook field name that triggered the event (e.g. "comments", "messages").
value.mediaIdstringMedia ID associated with the event (for comment/feed events).
value.commentIdstringComment ID (for comment events).
value.messageIdstringMessage ID (for message events).
value.senderIdstringPage-Scoped ID (PSID) of the sender (for message events).
value.textstringText content of the comment or message.
value.timestampstringISO 8601 timestamp of when the event occurred.
value.additionalDataobjectAdditional event-specific fields not mapped to named properties (varies by event type).

Error Port

FieldTypeDescription
statusstring"error"
errorCodestringError code — e.g. "invalid_signature", "verify_token_mismatch".
errorMessagestringError description.

Sample Output JSON

Comment event

{
  "status": "success",
  "eventType": "comments",
  "objectId": "17841400000000000",
  "field": "comments",
  "value": {
    "mediaId": "17855590000000001",
    "commentId": "17858893000000002",
    "messageId": null,
    "senderId": null,
    "text": "Love this product! Where can I buy it?",
    "timestamp": "2026-01-15T14:32:00Z",
    "additionalData": {}
  }
}

Message event

{
  "status": "success",
  "eventType": "messages",
  "objectId": "17841400000000000",
  "field": "messages",
  "value": {
    "mediaId": null,
    "commentId": null,
    "messageId": "aWdfZAG9waW50ZAXJlY29yZABhc3NldABuYW1lAA==",
    "senderId": "17858893300000001",
    "text": "Hi! Do you ship internationally?",
    "timestamp": "2026-01-15T14:35:22Z",
    "additionalData": {}
  }
}

Expression Reference

ExpressionValue
{{ $output.instagram.eventType }}Event type string
{{ $output.instagram.objectId }}Object ID the event relates to
{{ $output.instagram.value.senderId }}Sender PSID (for messages events)
{{ $output.instagram.value.commentId }}Comment ID (for comments events)
{{ $output.instagram.value.text }}Text content of the comment or message
{{ $output.instagram.value.mediaId }}Media ID associated with the event
{{ $output.instagram.value.timestamp }}Event timestamp (ISO 8601)

Node Policies & GuardRails

Meta Webhook Setup Checklist

  1. In the Meta Developer Console, go to your app's Webhooks settings.
  2. Add a new subscription for the Instagram object.
  3. Set the Callback URL to your BizFirst webhook endpoint URL.
  4. Set the Verify Token to match your configured verifyToken.
  5. Subscribe to the fields matching your desired event types: comments, messages, feed, mentions, story_insights, live_comments.
  6. Click Verify and Save — Meta will send a GET handshake request to your endpoint to verify the token.
  7. Ensure your Meta app has App Review approval for any sensitive permissions (instagram_manage_messages, instagram_manage_insights).

Examples

Real-time comment auto-response trigger

{
  "resource": "trigger",
  "operation": "receive-event",
  "verifyToken": "{{ $env.IG_WEBHOOK_VERIFY_TOKEN }}",
  "appSecretVaultKey": "meta_app_secret",
  "eventTypes": ["comments"]
}
// On success: route to comment moderation workflow
// Check value.text for keywords → reply, hide, or escalate to CRM

Triggered whenever a new comment is posted on any of your Instagram posts. The value.commentId and value.text are passed to a moderation node that checks for spam patterns or buying intent keywords before routing to the appropriate response workflow.

Automated DM acknowledgement and CRM routing

{
  "resource": "trigger",
  "operation": "receive-event",
  "verifyToken": "{{ $env.IG_WEBHOOK_VERIFY_TOKEN }}",
  "appSecretVaultKey": "meta_app_secret",
  "eventTypes": ["messages"]
}
// value.senderId → used as recipientId in messaging/send for immediate ack
// value.text → passed to AI intent classifier to route to correct CRM queue
// value.timestamp → used as message deduplication key

Fires when any user sends a DM to the business account. The workflow immediately triggers a messaging/send acknowledgement using value.senderId as the recipientId, then creates a CRM ticket with the message text and sender ID.

Multi-event unified listener

{
  "resource": "trigger",
  "operation": "receive-event",
  "verifyToken": "{{ $env.IG_WEBHOOK_VERIFY_TOKEN }}",
  "appSecretVaultKey": "meta_app_secret",
  "eventTypes": ["comments", "messages", "mentions", "feed"]
}
// Branch on eventType:
//   "comments"  → comment moderation workflow
//   "messages"  → DM responder workflow
//   "mentions"  → mention engagement workflow
//   "feed"      → cross-platform syndication workflow

A single webhook trigger node that fans out to four different downstream workflows using a Switch node branching on {{ $output.instagram.eventType }}. Reduces the number of webhook subscriptions needed to one endpoint per account.