AI connector
Tools reference
Every action an AI app can take in DMFast, and what it needs.
These are the 21 tools your AI app sees, straight from the DMFast server. You don't call them yourself: ask in plain words and the app picks the tool. Parameters marked ? are optional.
- Reads only tools never change anything.
- Makes changes tools save something in DMFast; most apps ask you to confirm first.
- Reaches real people means the result goes out on Instagram, Messenger or to a buyer (a DM, a reply, an email or a refund).
Account
get_accountAccount and planReads onlyThe connected account on DMFast (an Instagram account or a Facebook Page): its plan and this month's usage against the plan's limits (people replied to, emails collected, account look-ups, AI credits), how many auto-replies are on, and the AI reply settings.
Auto-replies
list_auto_repliesList auto-repliesReads onlyEvery auto-reply on the account: what triggers it (comments, story replies or DMs with which keywords, on which post), what it sends, whether it's on, and how many people it has replied to. Check this before creating one, so a keyword isn't used twice.
get_auto_replyAuto-reply detailsReads onlyOne auto-reply's full setup (every message, the link, follower and email steps, reminder) and its last 30 days: people started, got the link, clicked it, emails collected.
- id: string
- The auto-reply's id, from list_auto_replies.
create_auto_replyCreate an auto-replyMakes changesCreate an auto-reply; it starts answering right away. When someone comments a keyword on a post (or replies to a story, or sends a DM with a keyword), DMFast can reply publicly under the comment, then DMs them the opening message. For comments it waits for them to answer that DM; for story replies and DMs it carries on at once: it checks they follow (optional), asks for their email (optional), then sends the final message with up to 3 link buttons, or a carousel of products. Instead of keywords it can start on a meaning (intent, AI). On a Facebook Page the DMs go to Messenger, and story replies and followers_only aren't available. Check list_auto_replies first so keywords don't clash; list_recent_posts gives post and story ids. Confirm the messages with the user before creating it.
- trigger: "comment" | "story_reply" | "dm"
- comment: someone comments on a post. story_reply: someone replies to a story. dm: someone sends a DM.
- keywords?: string[]
- Words that trigger it, matched as whole words in any case, e.g. ["GUIDE"]. Empty (and no intent) = every comment, story reply or DM.
- post_ids?: string[]
- Comment auto-replies only: the posts to watch, from list_recent_posts (more than one: Pro plan and up). Leave out to watch every post, including future ones.
- post_id?: string
- Comment auto-replies only: one post to watch (same as post_ids with one id).
- story_id?: string
- Story-reply auto-replies only: one live story, from list_recent_posts. Leave out to answer replies to every story.
- name?: string
- A short name for the dashboard. Default: the keywords and trigger, e.g. "GUIDE comments".
- opening_message: string
- The first DM. For comments it must invite a reply, e.g. "Hey! Reply YES and I'll send you the guide": Instagram allows one message per comment until the person answers.
- public_replies?: string[]
- Comment auto-replies only: public replies under the comment, one picked at random, e.g. ["Sent! Check your DMs 📩"]. Leave empty for none.
- link_url?: string
- The link to send (https://…), shown as a button. Leave out to send only the final message.
- link_message?: string
- The final message, sent with the link button. Default "Here you go:".
- link_button?: string
- Button label, at most 20 characters. Default "Open link".
- more_links?: object[]
- Up to 2 more links in the same DM after link_url, each its own button with its own click count (Pro plan and up). Send [] to remove them.
- intent?: string
- Start on a meaning instead of keywords (Growth plan and up): what people mean, e.g. "asks about the price" or "wants to collaborate". DMFast's AI matches comments or DMs that mean it, in any words or language, using 1 AI credit per match. keywords are then ignored. Keyword auto-replies are always checked first.
- followers_only?: boolean
- Send the link only to people who follow the account (Pro plan and up).
- follow_prompt?: string
- Message asking non-followers to follow first (with followers_only).
- collect_email?: boolean
- Ask for their email before sending the link; it's saved under Emails.
- email_prompt?: string
- Message asking for the email (with collect_email).
- reminder_after_minutes?: integer
- Send one reminder if they stop, after this many minutes (Pro plan and up): while DMFast waits for a follow or an email, or when they got the link and didn't open it. Skipped if they reply or tap. At most 1200 (Instagram's 24-hour window).
- reminder_message?: string
- The reminder's text (with reminder_after_minutes).
- products?: object[]
- Instead of one link: products sent as a swipeable carousel, each card with a photo, name, price and button. Only url is needed: missing details are read from the product page. link_message goes first, as text. Send [] to go back to a single link.
- active?: boolean
- Default true (live right away). false saves it paused.
update_auto_replyChange an auto-replyMakes changesChange an auto-reply: turn it on or off, rename it, change its keywords, intent, posts or story, or edit any message, the links, the follower and email steps or the reminder. Only the fields you send change. Send an empty string to clear an optional text (e.g. link_url or intent), and reminder_after_minutes 0 to remove the reminder. Sending keywords switches an intent trigger back to keywords.
- id: string
- The auto-reply's id, from list_auto_replies.
- active?: boolean
- true turns it on, false pauses it.
- name?: string
- New name.
- keywords?: string[]
- New keywords (replaces the old ones). Empty = every comment, story reply or DM.
- post_ids?: string[]
- Comment auto-replies only: the posts to watch (replaces the old ones). [] watches every post.
- post_id?: string
- Comment auto-replies only: one post id from list_recent_posts, or "all" to watch every post.
- story_id?: string
- Story-reply auto-replies only: a live story's id, or "all" for every story.
- opening_message?: string
- The first DM. For comments it must invite a reply, e.g. "Hey! Reply YES and I'll send you the guide": Instagram allows one message per comment until the person answers.
- public_replies?: string[]
- Comment auto-replies only: public replies under the comment, one picked at random, e.g. ["Sent! Check your DMs 📩"]. Leave empty for none.
- link_url?: string
- The link to send (https://…), shown as a button. Leave out to send only the final message.
- link_message?: string
- The final message, sent with the link button. Default "Here you go:".
- link_button?: string
- Button label, at most 20 characters. Default "Open link".
- more_links?: object[]
- Up to 2 more links in the same DM after link_url, each its own button with its own click count (Pro plan and up). Send [] to remove them.
- intent?: string
- Start on a meaning instead of keywords (Growth plan and up): what people mean, e.g. "asks about the price" or "wants to collaborate". DMFast's AI matches comments or DMs that mean it, in any words or language, using 1 AI credit per match. keywords are then ignored. Keyword auto-replies are always checked first.
- followers_only?: boolean
- Send the link only to people who follow the account (Pro plan and up).
- follow_prompt?: string
- Message asking non-followers to follow first (with followers_only).
- collect_email?: boolean
- Ask for their email before sending the link; it's saved under Emails.
- email_prompt?: string
- Message asking for the email (with collect_email).
- reminder_after_minutes?: integer
- Send one reminder if they stop, after this many minutes (Pro plan and up): while DMFast waits for a follow or an email, or when they got the link and didn't open it. Skipped if they reply or tap. At most 1200 (Instagram's 24-hour window). 0 removes the reminder.
- reminder_message?: string
- The reminder's text (with reminder_after_minutes).
- products?: object[]
- Instead of one link: products sent as a swipeable carousel, each card with a photo, name, price and button. Only url is needed: missing details are read from the product page. link_message goes first, as text. Send [] to go back to a single link.
delete_auto_replyDelete an auto-replyMakes changesCan't be undoneDelete an auto-reply and its history for good. People in the middle of it get no further messages; emails it collected stay. To stop it for now instead, use update_auto_reply with active false. Confirm with the user first.
- id: string
- The auto-reply's id, from list_auto_replies.
reply_to_older_commentsReply to older commentsMakes changesReaches real peopleRun a comment auto-reply on comments from the last 7 days that came in before it existed (or while it was off). DMFast DMs each matching commenter once, within a few minutes; people it already answered are skipped. Pro plan and up; not in the demo.
- id: string
- A comment auto-reply's id, from list_auto_replies.
list_recent_postsRecent postsReads onlyThe account's newest posts (Instagram posts and reels, or a Facebook Page's posts) with their ids and captions, which auto-replies watch each one, and the Instagram stories live now. Use post ids in post_ids for a comment auto-reply, and a story id as story_id for a story-reply one.
- limit?: integer
- How many posts (default 12).
Messages
list_conversationsList DM conversationsReads onlyRecent DM conversations, newest first: who, their last message, and whether Instagram's 24-hour reply window is still open. Includes chats started by auto-replies.
- search?: string
- Only people whose username or name contains this.
- limit?: integer
- How many (default 20).
get_conversationRead a conversationReads onlyThe messages in one DM conversation (newest 50), what's known about the person, how long the 24-hour reply window has left, and any scheduled DMs.
- conversation_id?: string
- The conversation's id, from list_conversations.
- username?: string
- Or the person's Instagram username (on a Facebook Page: their name).
send_dmSend a DMMakes changesReaches real peopleSend a DM in an existing conversation as the account (Instagram, or Messenger for a Facebook Page), or schedule it with send_at (Pro plan and up). Both only allow it within 24 hours of the person's last message; get_conversation shows the time left. Send only what the user asked for, and show them the text first.
- conversation_id?: string
- The conversation's id, from list_conversations.
- username?: string
- Or the person's Instagram username (on a Facebook Page: their name).
- text: string
- The message, at most 1,000 characters.
- send_at?: string
- Optional: when to send it, as an ISO 8601 time with a timezone, e.g. 2026-10-06T18:00:00Z. It must fall inside the 24-hour window.
set_ai_repliesAI repliesMakes changesSet up DMFast's AI assistant: replies to DMs and to comments that no auto-reply matched (on or off), what it should know (products, prices, FAQs, links), its tone, and the goal it steers DM chats towards. Each reply uses 1 AI credit. Turning replies on needs the Growth plan or higher. Fields you leave out keep their current value.
- enabled?: boolean
- true: the AI answers DMs no auto-reply matched. false: it stays quiet.
- comments?: boolean
- true: the AI also posts short public replies under comments that need an answer (60 an hour, one per person a day).
- instructions?: string
- What the AI should know and how to answer. Replaces the current instructions.
- tone?: "friendly" | "professional" | "playful"
- friendly, professional or playful.
- goal?: "none" | "email" | "link" | "call" | "follow"
- What DM chats steer towards: none (just answer), email (ask for their email; saved under Emails), link (send them to goal_url), call (book a call at goal_url) or follow.
- goal_url?: string
- The link for the link and call goals (https://…).
Results
get_resultsResultsReads onlyHow the auto-replies are doing over a period: people reached (different people), DMs sent, link clicks, unique clickers, CTR (unique clickers ÷ people reached) and emails, with each auto-reply's funnel (started → got the link → clicked) ranked by people reached. Periods beyond 30 days need the Pro plan.
- range?: "7d" | "30d" | "90d" | "12m" | "all"
- The period (default 30d). 90d, 12m and all need Pro.
- days?: "7" | "30" | "90"
- Older form of range: 7, 30 or 90 days.
list_emailsCollected emailsReads onlyEmails people shared: in auto-replies that ask for one and in chats with the AI assistant (with their username and where it came from), in the bio page's sign-up box, and in the store (lead magnet sign-ups with phone numbers, and buyers). Newest first.
- limit?: integer
- How many (default 50).
- since?: string
- Only emails collected on or after this date (YYYY-MM-DD).
Research
research_accountResearch an Instagram accountMakes changesReaches real peopleLook up any public Instagram account (from any connected account, Facebook Pages included): followers, engagement rate (and how it compares for that size), posts per week, average likes and comments, the posts with the most comments, and the words it asks people to comment ("Comment GUIDE") with how those posts did. Good for keyword ideas from similar creators. A fresh look-up uses one of the plan's monthly look-ups; accounts looked up in the last day are free.
- username: string
- Instagram username or profile link, e.g. hubspot or instagram.com/hubspot.
Store and calls
list_storeStore products and salesReads onlyThe account's store: digital products for sale (name, price, link, sales, revenue), whether payouts to the creator's bank are set up, and recent paid orders. Product links can go into an auto-reply's product carousel (create_auto_reply products).
create_store_productAdd a store productMakes changesAdd a digital product to the store, delivered as a private link (Notion page, Google Drive folder, course, community invite). Price 0 makes it a lead magnet: free for an email (and a phone number with ask_phone). It appears in the link in bio right away; payments are in INR via Razorpay. Files (PDFs etc.) are uploaded in the dashboard instead. Confirm the name and price with the user first.
- title: string
- Product name.
- price_inr: number
- Price in rupees, e.g. 499. 0 = free for an email (lead magnet).
- ask_phone?: boolean
- Free products only: also require a phone number.
- delivery_url: string
- The private https link buyers get after paying.
- description?: string
- What's inside and who it's for.
list_bookingsUpcoming 1-on-1 callsReads onlyUpcoming booked calls (1-on-1 call products in the store): when, who, their email, phone and note, in the creator's time zone.
- days?: integer
- How far ahead (default 14 days).
cancel_bookingCancel a booked callMakes changesCan't be undoneReaches real peopleCancel an upcoming 1-on-1 call (booking_id from list_bookings). A paid call is refunded in full through Razorpay; the event leaves the creator's Google Calendar and the booker is emailed. Confirm with the user first: it can't be undone.
- booking_id: string
- From list_bookings.
refund_orderRefund a saleMakes changesCan't be undoneReaches real peopleRefund a paid store order in full through Razorpay (order_id from list_store's recent sales). The buyer loses access, a call's booking is cancelled, and they're emailed. Confirm the order and amount with the user first: it can't be undone.
- order_id: string
- From list_store.
More
list_ai_activityAI activityReads onlyWhat DMFast's AI assistant did, newest first: DM and comment replies it sent, comments it chose not to answer (and why), auto-replies it started by meaning, with the credits each used, plus 30-day totals.
- kind?: "dm_reply" | "comment_reply" | "intent" | "test"
- Only this kind: dm_reply, comment_reply, intent or test.
- limit?: integer
- How many (default 20).