Portal Community

When to Use

Configuration

Connection

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

Operation

FieldRequiredDescription
resourceRequiredMust be media (maps to Graph API media edge).
operationRequiredMust be get.
mediaIdRequiredThe Instagram media object ID to retrieve (e.g. 17855590000000000).
fieldsOptionalComma-separated field list. Defaults include id,caption,media_type,media_url,timestamp,like_count,comments_count,permalink. Add thumbnail_url for videos.

Sample Configuration JSON

{
  "resource": "media",
  "operation": "get",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "17841400000000000",
  "mediaId": "17855590000000001",
  "fields": "id,caption,media_type,media_url,timestamp,like_count,comments_count,permalink"
}

Validation Errors

ErrorCause
accessToken is requiredaccessToken field is missing or empty.
mediaId is requiredmediaId field is missing or empty.
invalid_inputGeneral config validation failure from base class.

Output

Success Port

FieldTypeDescription
statusstring"success"
idstringMedia object ID.
captionstringPost caption text (up to 2200 characters).
mediaTypestringIMAGE, VIDEO, CAROUSEL_ALBUM, or REEL.
mediaUrlstringURL to the media file. Expires after a set period for CDN-hosted content.
timestampstringISO 8601 publish timestamp.
likeCountnumberTotal like count at time of request.
commentsCountnumberTotal comment count at time of request.
permalinkstringPermanent public URL to the Instagram post.
payloadstringRaw JSON response from the Graph API.

Error Port

Fires on authentication failure, invalid media ID, expired token, or rate limit exceeded.

FieldTypeDescription
statusstring"error"
errorCodestringGraph API error code (e.g. 100, 190) or BizFirst validation code.
errorMessagestringHuman-readable error description.
payloadstringRaw error response from the Graph API.

Sample Output JSON

{
  "status": "success",
  "id": "17855590000000001",
  "caption": "Excited to announce our summer collection! #fashion #summer2025",
  "mediaType": "IMAGE",
  "mediaUrl": "https://scontent.cdninstagram.com/v/t51.29350-15/...",
  "timestamp": "2025-06-15T14:30:00+0000",
  "likeCount": 842,
  "commentsCount": 37,
  "permalink": "https://www.instagram.com/p/ABC123xyz/",
  "payload": "{\"id\":\"17855590000000001\",\"caption\":\"...\"}"
}

Expression Reference

ExpressionValue
{{ $output.instagram.id }}Media object ID
{{ $output.instagram.caption }}Post caption text
{{ $output.instagram.mediaType }}Media type string
{{ $output.instagram.mediaUrl }}Direct media file URL
{{ $output.instagram.permalink }}Public post URL
{{ $output.instagram.likeCount }}Like count integer
{{ $output.instagram.commentsCount }}Comment count integer

Node Policies & GuardRails

Examples

Fetch post and log to database

{
  "resource": "media",
  "operation": "get",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "{{ $env.IG_USER_ID }}",
  "mediaId": "{{ $trigger.body.mediaId }}",
  "fields": "id,caption,media_type,like_count,comments_count,permalink,timestamp"
}

Used in a webhook-triggered workflow. The incoming event contains the mediaId; this node fetches full details before writing to a reporting database.

Cross-post content to internal CMS

{
  "resource": "media",
  "operation": "get",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "17841400000000000",
  "mediaId": "17855590000000002",
  "fields": "id,caption,media_url,thumbnail_url,media_type,permalink"
}

Retrieves the media file URL and caption for a Reel. The thumbnail_url field is included to get the video cover image for use in a CMS preview card.