Install
openclaw skills install @datavoyantlab/instagram-campaign-monitorMonitor recent public Instagram posts from campaign or branded hashtags through Apify, with optional brand-term filtering and webhook delivery. Use for recurring campaign tracking, UGC discovery, brand mentions, or scheduled hashtag reports; do not use for broad historical hashtag scraping.
openclaw skills install @datavoyantlab/instagram-campaign-monitorUse DataVoyantLab's Instagram Campaign Hashtag Monitor on Apify to find recent public posts from branded or campaign hashtags, optionally filter them with brand terms, and deliver results to a dataset or webhook.
This skill uses a paid external service on Apify. It requires a paid Apify account or an approved DataVoyantLab Free-user entitlement.
The campaign hashtags, brand terms, and time window are sent to Apify to perform the scan. Tell the user this before execution. Never send the Apify token anywhere except the documented Apify API.
aXaAdkVNc5MZ60qbHcampaign_hashtagsbrand_terms, webhook_url, notify_on_zeromax_scan_pages: integer from 1 to 10, default 10last_hours: integer from 1 to 168, default 24Use branded or campaign-specific hashtags. Do not silently turn a broad topical hashtag into an unbounded historical scrape.
APIFY_TOKEN and never display or persist it.# from hashtags, trim whitespace, remove duplicates, and
reject empty values.max_scan_pages and last_hours against the Actor limits.APIFY_TOKEN or
sensitive URL query strings to the webhook.jq and include:{
"skill": true,
"skillName": "instagram-campaign-monitor",
"skillVersion": "1.0.1"
}
Fetch https://api.apify.com/v2/acts/aXaAdkVNc5MZ60qbH. Select the latest
active entry in .data.pricingInfos and read the Actor-start price plus
scan-page.eventPriceUsd.
Calculate:
maximum charge = actor start + (max_scan_pages × scan-page) + $0.01
Round up to the next cent. If active pricing or either event is missing, do not start the run.
Before every billable run, show the user:
maxTotalChargeUsd cap;APIFY_TOKEN will be billed; andAsk the user to explicitly approve that exact scope and charge cap. A monitoring request is not payment authorization. Do not send a run request without an affirmative reply. For recurring execution, the approval must state the schedule, expiry, per-run cap, and aggregate cap. Any change to the inputs, pricing, destination, or caps requires renewed approval.
Start:
POST https://api.apify.com/v2/acts/aXaAdkVNc5MZ60qbH/runs
?waitForFinish=60
&maxTotalChargeUsd=<calculated cap>
Authorization: Bearer $APIFY_TOKEN
Content-Type: application/json
Poll GET /v2/actor-runs/<run ID>?waitForFinish=60 until terminal status. On
SUCCEEDED, retrieve
GET /v2/actor-runs/<run ID>/dataset/items?clean=true&format=json.
Run only after the approval above.
Return:
Zero matching posts is a valid result. Distinguish it from a failed Actor run. For a failed terminal status, return the public status and run ID without exposing private implementation details.
If Apify rejects an unapproved Free account, tell the user to email
datavoyant@gmail.com with their Apify user ID to request access.