MCP App Store
by KeenEthics
AllBack icon

AllBack

By Artur Mkrtchyan Ventures UG (haftungsbeschränkt)

Get New App Alerts

Overview

AllBack sends forms to many people and follows up until everyone answers: it collects information, files, and signatures, and reminds only the people who forget. Tell ChatGPT what you need and from whom. AllBack builds the form, and you check it in a preview before anything goes out. Then each person gets their own link by email, prefilled with what you already know. AllBack reminds only the people who are not done, before the due date, and the reminders stop by themselves. Ask "who is still missing?" at any time, and get every answer as one clean sheet or a CSV file. For anyone, without a list, AllBack makes a form with one open link that you can post, share in a newsletter, or print as a QR code. What people use it for: speaker details and headshots for an event, client onboarding documents, new-hire details, policy sign-off, RSVPs, vendor documents, and year-end documents for an accountant. Forms support 18 question types, file uploads and signatures, logic and paths, documents that people must read before they sign, and a style that you describe in words.

Tools

add_recipients

ChatGPT
Add people to a request. Each person gets a personal link. Known values go in "prefill" (keys are field ids), and the person only confirms or fixes them. For people who know the user and expect the email, for example speakers, clients, staff, or members. Give a list, or paste CSV text with a header row: an "email" column, an optional "name" column, and columns named like field ids or labels for prefill. By default an invite email goes to each new person. The same email again updates the prefill and keeps the link. On a form, this makes it a request: it keeps its open link and its answers, and AllBack starts to remind the people you add. Then use the request tools for it.

clear_test_answers

ChatGPT
Delete the test answers (from the test_link) of a request or a form, with their files. Real answers stay. Use it before the real send, so the numbers start at zero.

close_form

ChatGPT
Close a form, so its open link stops taking answers. Every answer stays. Set reopen to true to open it again.

close_request

ChatGPT
Close a request, so its links stop taking answers and no more reminders go out. Every answer stays. Set reopen to true to open it again.

create_form

ChatGPT
Create a form: one open link that anyone can fill, for a post, a newsletter, a website, or a QR code. There is no list of people and there are no reminders. To chase a list of known people, use create_request. Returns a form_id, a preview_url, a test_link, and the open_link. Show the preview_url to the user. FORM JSON. Minimal: {"title":"...","blocks":[{"id":"full_name","type":"short_text","label":"Full name","required":true}]}. Use "pages":[{"id","title","blocks":[...],"next":[...]}] for steps and paths. STYLE: set theme.preset. "like Tally"/simple/document -> "paper". "like Typeform"/one question at a time/conversational -> "focus". Others: midnight (dark), sunrise (warm, conversational), forest (green, calm), mono (brutalist), lavender (playful, conversational, centered), ocean (corporate blue). Override: theme.accent/background/text/... (hex), font (system|inter|grotesk|serif|rounded|mono), radius (none|small|medium|large|full), align (left|center), logo/cover (https URLs). "layout":"classic"|"conversational" forces the layout. FIELD TYPES (all take id [a-z0-9_], label, description, required, showIf): short_text, long_text (maxLength), email, phone, url, number (min,max,unit), choice (options:["A","B"] or [{id,label,image}], multiple, maxSelect, allowOther, display:auto|list|dropdown|cards), yes_no, rating (max 3-10, icon star|heart|thumb|bolt), scale (min 0|1, max<=10, minLabel, maxLabel; NPS = 0-10), ranking (options), matrix (rows, columns), date (min,max YYYY-MM-DD), time, file (multiple, maxFiles, accept:["image/*","application/pdf"], maxSizeMb<=25), signature, consent (text with links), hidden (value only from prefill). Content blocks: heading, text (markdown), divider, image (src), document (id, title, and src: a PDF link, or body: markdown text; required:true means people must open it, or scroll a body to the end, before they can send). READ AND CONFIRM ("make sure everyone reads the new policy"): a page with a required document, then a required consent ("I have read and accept the {{...}} policy"), and optionally a signature. get_status shows who read it. LOGIC: showIf on any block: {"field":"format","op":"eq","value":"Workshop"}. Groups: {"all":[..]}, {"any":[..]}, {"not":{..}}. Ops: eq, neq, in, not_in, contains, not_contains, gt, gte, lt, lte, empty, not_empty. Choice values match id or label. Paths: page "next":[{"if":{...},"to":"page_id"|"end"|"end:ending_id"}]; first match wins, else next page. Endings: "endings":[{"id","title","text","showIf"}]. Piping: {{field_id}}, {{recipient.first_name}} in any text. ENDINGS (what people see and get after they send). Each ending can also have: - "blocks":[{"type":"heading"|"text"|"divider"|"image",...}]: content under the text. - "buttons":[{"label","url","style":"primary"|"secondary","kind":"link"|"booking"|"payment"}], at most 3. https only. Piping works in the path and the query, never in the host: "https://acme.com/welcome?plan={{plan}}". kind "booking" adds the person's name and email to Calendly and Cal.com links. kind "payment" adds the email to Stripe Payment Links. - "summary":true shows the person their answers. "pdf":true adds "Download PDF" (and attaches it to the receipt email). - "redirect":{"url","after":5}: go to the URL after that many seconds (0-60), with a "Stay here" link. - "email":{"subject","text"}: send the person a copy of their answers with this text (piping works). See receipt below. - "next":{"request_id","label"}: the next request or form of a flow. The person continues there, and answers to fields with the same id are prefilled. - "share":true (forms only): the open link and a QR code, to pass the form on. - "ai":{"prompt":"Give 3 next steps from their answers"}: AI text from the answers under the ending text (Pro and Business). - "custom":{"html","css","js"}: a fully custom ending page in the sandbox (same rules as custom forms). In js, await allback.ready() gives {ending, form, recipient}: ending has title, text, buttons, summary, redirect, pdf, next, ai. allback.open(url) opens one of the ending's own links (its butt…

create_meeting_poll

ChatGPT
Make a poll to find a time that works for everyone, as a draft: a title, the days or times to vote on, and optionally the people to invite. Nothing goes out yet. Each option is a whole day, or a start time on a day. People vote yes, if needed, or no, and see the times in their own time zone. Show the user manage_url to check it, then call send_meeting_poll. To change a draft, call it again with poll_id. Fields you leave out stay as they are; options and people replace the whole list.

create_request

ChatGPT
Create a request: a form that goes to a list of people, each with a personal link and reminders. For one open link for anyone, use create_form. Returns a request_id, a preview_url, and a test_link (up to 3 test answers). Show the preview_url to the user, then call add_recipients. FORM JSON. Minimal: {"title":"...","blocks":[{"id":"full_name","type":"short_text","label":"Full name","required":true}]}. Use "pages":[{"id","title","blocks":[...],"next":[...]}] for steps and paths. STYLE: set theme.preset. "like Tally"/simple/document -> "paper". "like Typeform"/one question at a time/conversational -> "focus". Others: midnight (dark), sunrise (warm, conversational), forest (green, calm), mono (brutalist), lavender (playful, conversational, centered), ocean (corporate blue). Override: theme.accent/background/text/... (hex), font (system|inter|grotesk|serif|rounded|mono), radius (none|small|medium|large|full), align (left|center), logo/cover (https URLs). "layout":"classic"|"conversational" forces the layout. FIELD TYPES (all take id [a-z0-9_], label, description, required, showIf): short_text, long_text (maxLength), email, phone, url, number (min,max,unit), choice (options:["A","B"] or [{id,label,image}], multiple, maxSelect, allowOther, display:auto|list|dropdown|cards), yes_no, rating (max 3-10, icon star|heart|thumb|bolt), scale (min 0|1, max<=10, minLabel, maxLabel; NPS = 0-10), ranking (options), matrix (rows, columns), date (min,max YYYY-MM-DD), time, file (multiple, maxFiles, accept:["image/*","application/pdf"], maxSizeMb<=25), signature, consent (text with links), hidden (value only from prefill). Content blocks: heading, text (markdown), divider, image (src), document (id, title, and src: a PDF link, or body: markdown text; required:true means people must open it, or scroll a body to the end, before they can send). READ AND CONFIRM ("make sure everyone reads the new policy"): a page with a required document, then a required consent ("I have read and accept the {{...}} policy"), and optionally a signature. get_status shows who read it. LOGIC: showIf on any block: {"field":"format","op":"eq","value":"Workshop"}. Groups: {"all":[..]}, {"any":[..]}, {"not":{..}}. Ops: eq, neq, in, not_in, contains, not_contains, gt, gte, lt, lte, empty, not_empty. Choice values match id or label. Paths: page "next":[{"if":{...},"to":"page_id"|"end"|"end:ending_id"}]; first match wins, else next page. Endings: "endings":[{"id","title","text","showIf"}]. Piping: {{field_id}}, {{recipient.first_name}} in any text. ENDINGS (what people see and get after they send). Each ending can also have: - "blocks":[{"type":"heading"|"text"|"divider"|"image",...}]: content under the text. - "buttons":[{"label","url","style":"primary"|"secondary","kind":"link"|"booking"|"payment"}], at most 3. https only. Piping works in the path and the query, never in the host: "https://acme.com/welcome?plan={{plan}}". kind "booking" adds the person's name and email to Calendly and Cal.com links. kind "payment" adds the email to Stripe Payment Links. - "summary":true shows the person their answers. "pdf":true adds "Download PDF" (and attaches it to the receipt email). - "redirect":{"url","after":5}: go to the URL after that many seconds (0-60), with a "Stay here" link. - "email":{"subject","text"}: send the person a copy of their answers with this text (piping works). See receipt below. - "next":{"request_id","label"}: the next request or form of a flow. The person continues there, and answers to fields with the same id are prefilled. - "share":true (forms only): the open link and a QR code, to pass the form on. - "ai":{"prompt":"Give 3 next steps from their answers"}: AI text from the answers under the ending text (Pro and Business). - "custom":{"html","css","js"}: a fully custom ending page in the sandbox (same rules as custom forms). In js, await allback.ready() gives {ending, form, recipient}: ending has title, text, buttons, summary, redirect, pdf, next, ai. allback.open(url) opens one of the ending's own links (its buttons, redirect, next, pdf). al…

create_signup_sheet

ChatGPT
Make a sign-up sheet as a draft. mode "slots": volunteer shifts or tasks, each with a number of places and an optional day and time. mode "potluck": dishes to bring, each with a number of places, and people write what they bring. Nothing goes out yet. Show the user manage_url to check it, then call send_signup_sheet. To change a draft, call it again with sheet_id. Fields you leave out stay as they are; slots and people replace the whole list.

export_form_results

ChatGPT
Get all answers of a form as CSV (one row per answer, one column per field) and a download link. File answers are links that work for 7 days.

export_request_results

ChatGPT
Get all answers of a request as CSV (one row per person, one column per field) and a download link. File answers are links that work for 7 days.

get_activity

ChatGPT
Answer "what happened today?" or "anything new?": the latest opens, answers, documents read, invites, and reminders, newest first. Give request_id or form_id for one request or form. Leave both out for the open requests and forms of the user together.

get_answers

ChatGPT
Read the answers of a request or a form here, to summarize them, compare them, or answer "what did Anna say?". Each item is one person (or one open-link answer): name, email, done, and the answers by field id. The fields list gives the label of each id. People who started but did not send are in it too, with done: false and the answers they have so far. Give email for one person. Long lists come in pages: call again with next_offset. For a CSV file, use export_request_results or export_form_results.

get_form

ChatGPT
Get a form: its JSON, the open link, if it is open or closed, and the number of answers. Use it before update_form, or to answer "what is the link?" and "how many answers?".

get_form_insights

ChatGPT
Show how a form performs: answers, answers each day, the finish rate, the question where people stop, and plain suggestions to get more answers.

get_meeting_poll

ChatGPT
Without poll_id: the user's meeting polls. With poll_id: each option with its yes, if needed, and no votes, the best options, and the votes of each person. Use it for "which time works best?" and "who did not vote?".

get_request

ChatGPT
Get the form JSON and the settings of a request: due date, invite message, reminders, email settings, the open link (or null when it is off), status, and a preview link for each ending. Use it before update_request.

get_request_insights

ChatGPT
Show how a request performs: the funnel (invited, opened, started, done), the question where people stop, how long the form takes, which email (invite or reminder N) came before each answer, document read rates, and plain suggestions to get more answers.

get_secret_santa

ChatGPT
Without group_id: the user's Secret Santa groups. With group_id: the group, and for each person if they opened the link and added a wish list. It never shows who gives to whom.

get_signup_sheet

ChatGPT
Without sheet_id: the user's sign-up sheets. With sheet_id: each slot with its places and the people who took it (and what they bring), and who on the list did not sign up.

get_status

ChatGPT
Answer "who is still missing?" for a request: each person is done, opened but not done (with what is still missing), or not opened. People who still owe answers come first. It also shows the next reminder, and who read each document.

list_forms

ChatGPT
List the user's forms, with the number of answers each. For requests, use list_requests.

list_requests

ChatGPT
List the user's requests, with the number of people who are done, started, and not started. For forms, use list_forms.

list_templates

ChatGPT
List the ready-made templates: speaker details, client onboarding, policy sign-off, event RSVPs, feedback surveys, and more. Each one has a slug, its kind (request for a list of people, form for one open link), and its first questions. Give slug to get the full form JSON of one template, to change it and pass it as form. Or pass the slug as template to create_request or create_form.

pick_meeting_time

ChatGPT
Pick the final time of an open meeting poll. The poll closes, and every person with an email gets the time and a calendar file. Get the option_id from get_meeting_poll. Ask the user before you call it: the emails cannot be taken back.

preview_emails

ChatGPT
Show the emails of a request as a person gets them: the invite, and the next reminder with its time. Use it when the user asks "what will people get?" before add_recipients, or before send_reminders. Without people on the list, it shows a sample person. To change the text, call update_request with a new message.

send_feedback

ChatGPT
Send feedback about AllBack to the AllBack team. The team reads each one and uses it to fix and improve the tools. Call it on your own when: a tool fails in a way that its error does not explain, a tool does something different from its description, you needed several tries to get something right, or the user asks for something that AllBack cannot do. Also call it when the user asks you to send feedback. Send one feedback for each problem, not one for each failed call. Do not send it for errors that you fixed by following the error message. In message, write what you tried, what happened (the exact error), and what you expected. Do not put answers, names, or email addresses of the people on a list in message. After you send it, tell the user in one short line.

send_meeting_poll

ChatGPT
Open a meeting poll draft: it gets an open_link that anyone can use to vote, and each person on the list gets an invite email with their own link. Give the user the open_link to share in a chat or an email. Ask the user before you call it: the emails cannot be taken back.

send_reminders

ChatGPT
Send a reminder email now to the people in a request who have not finished. Nobody gets two reminders within 12 hours. Optionally give a short friendly note, or limit it to some emails.

send_secret_santa

ChatGPT
Draw the names of a Secret Santa draft and email each person their link. Each person sees only their own match. AllBack reminds people to add a wish list, tells each Santa when the wish list of their match is ready, and sends a note on the exchange day. Ask the user before you call it: the emails cannot be taken back. A user can send at most 5 groups a day.

send_signup_sheet

ChatGPT
Open a sign-up sheet draft: it gets an open_link that anyone can use to sign up, and each person on the list gets an invite email with their own link. Give the user the open_link to share. AllBack sends each person a confirmation and a reminder before their slot. Ask the user before you call it: the emails cannot be taken back.

update_form

ChatGPT
Change a form: the questions and endings (send the full new form JSON, in the format of create_form), the title, or the email settings. The open link stays the same. Answers stay for the fields that stay.

update_request

ChatGPT
Change a request: the form (send the full new form JSON, in the format of create_request), the title, the due date, the invite message, the reminders, or the open link. Use it for asks like "make it like Typeform" or "add a T-shirt size question". People keep their answers for fields that stay. Set open_link: true to add one link that anyone can fill, next to the personal links, and get the link back in open_link (the same link each time). Set open_link: false to turn it off. Example: the request goes to 20 known speakers, and the co-host posts the open link in Slack for speakers who are not on the list. Open-link answers get no prefill and no reminders, and they are not in get_status. They are in export_request_results.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps