Private, not public: This operation sends a private DM reply to the comment author, not a visible public comment reply. The commenter receives the message in their Instagram DMs. Use
comment/create to post a public reply instead.
When to Use
- Customer service — private issue resolution: When a customer posts a complaint or support request in the comments, automatically send a private reply directing them to DM for private assistance, keeping sensitive information out of public view.
- Order enquiry handling: When a commenter asks about their order with a reference number visible in public, route to a private reply workflow to handle the enquiry confidentially.
- Lead qualification follow-up: When a prospective customer comments expressing buying intent (e.g. "How much does this cost?"), send a private reply with a personalised pricing link or booking invitation.
- Giveaway winner notification: Notify giveaway winners via private DM reply instead of posting their details publicly in the comment section.
- Sensitive content de-escalation: When a negative comment is detected, send a private empathetic reply to de-escalate while simultaneously evaluating whether to hide the public comment.
Configuration
Connection
| Field | Required | Description |
accessToken | Required | Long-lived Instagram access token stored in BizFirst Credentials Manager. |
igUserId | Required | Your Instagram Business/Creator account ID. |
Operation
| Field | Required | Description |
resource | Required | Must be comments. |
operation | Required | Must be send-private-reply. |
commentId | Required | The ID of the public comment to reply to privately. The commenter is identified from this comment. |
message | Required | The private message text to send. Plain text only — no media attachments via this operation. |
Sample Configuration JSON
{
"resource": "comments",
"operation": "send-private-reply",
"accessToken": "{{ $credential.instagram.accessToken }}",
"igUserId": "17841400000000000",
"commentId": "{{ $trigger.body.value.commentId }}",
"message": "Hi! Thanks for reaching out. Please check your DMs — we've sent you the details privately."
}
Validation Errors
| Error | Cause |
accessToken is required | accessToken field is missing or empty. |
commentId is required | commentId field is missing or empty. |
message is required | message field is missing or empty. |
| Graph API error 10 | The commenter has messaging disabled or has not previously messaged your account. |
Output
Success Port
| Field | Type | Description |
status | string | "success" |
messageId | string | ID of the sent private message. |
payload | string | Raw JSON response from the Graph API. |
Error Port
| Field | Type | Description |
status | string | "error" |
errorCode | string | Graph API error code. |
errorMessage | string | Error description. |
payload | string | Raw error response. |
Sample Output JSON
{
"status": "success",
"messageId": "aWdfZAG9waW50ZAXJlY...",
"payload": "{\"recipient_id\":\"17858893...\",\"message_id\":\"aWdfZAG9...\"}"
}
Expression Reference
| Expression | Value |
{{ $output.instagram.messageId }} | Sent message ID |
Node Policies & GuardRails
- Messaging platform approval: Sending private replies requires your app to have Instagram Messaging permissions approved by Meta. Standard Graph API access may not include this by default.
- 24-hour window: You can only send private messages to users who have previously messaged your account or within Meta's messaging policy window. Unsolicited first-message DMs require specific Messenger Platform approval.
- GDPR: Private message content is highly personal. Ensure your DM content and logging practices comply with data protection regulations. Do not store message content beyond operational necessity.
- Rate limit: Subject to standard 200 calls/hour limit plus Messenger Platform-specific per-user rate limits.
Examples
Customer support triage
{
"resource": "comments",
"operation": "send-private-reply",
"accessToken": "{{ $credential.instagram.accessToken }}",
"igUserId": "{{ $env.IG_USER_ID }}",
"commentId": "{{ $trigger.body.value.commentId }}",
"message": "Hi {{ $output.commentGet.instagram.username }}, thank you for your message! Our support team will reach out to you shortly. Reference: {{ $output.crmCreate.ticketId }}"
}
Triggered by a webhook comment event. After retrieving the comment and creating a CRM ticket, sends a private acknowledgement with the ticket reference.
Lead follow-up with personalised link
{
"resource": "comments",
"operation": "send-private-reply",
"accessToken": "{{ $credential.instagram.accessToken }}",
"igUserId": "17841400000000000",
"commentId": "{{ $input.commentId }}",
"message": "Thanks for your interest! Here is your personalised pricing page: {{ $output.crmLead.proposalUrl }}"
}