Docs · Tools reference

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 only

The 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 only

Every 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 only

One 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 changes

Create 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 changes

Change 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 undone

Delete 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 people

Run 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 only

The 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 only

Recent 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 only

The 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 people

Send 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 changes

Set 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 only

How 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 only

Emails 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 people

Look 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 only

The 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 changes

Add 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 only

Upcoming 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 people

Cancel 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 people

Refund 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 only

What 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).