formbasedocs
Go to appApp

Pro feature

This needs the Pro plan or higher. Compare plans →

Requests

Invitations, reminders & expiry

Delivering the link, chasing the people who go quiet, and deciding when a request stops being worth waiting for.


Two ways to deliver a link

Every request comes back with a url. You can send it yourself — in your own email, a Slack message, an SMS — or ask formbase to email it. Sending it yourself works on every plan. Letting formbase send invitations and reminders requires a Pro or Business plan; a Free account can have formbase email its first 10 invitations to try it (see free invitations).

The request invitation

Create a request with delivery: “email” and a recipient email address, and formbase sends the request invitation: a short email carrying a button that opens the request link.

You author it once per form, not once per request. In the editor, open Settings → E-mail Notifications and scroll to the Requests group at the bottom:

FieldWhat it is
Fromnoreply@formbase.so, or your own address once you set up a custom email domain and pick it for the form.
ToFixed: the request recipient, set by the automation on each request.
SubjectOptional. Left empty, formbase sends "We need a few things from you". Mentions are allowed.
BodyOptional. Left empty, formbase sends its built-in message; Preview shows exactly what goes out. Mentions are allowed.
ButtonLabelled Open request; it carries the request link. Always present, not editable.

There is no free-text message from the caller — an automation cannot inject a paragraph into this email. What it can do is supply values: mention a context field or a prefilled field in the subject or body and each recipient gets their own version. That keeps the copy under your control while still reading as if it were written for them.

Translate it

If the form has published languages, the invitation follows the request’s language. Translate the email copy alongside the rest of the form — see Translating form content.

Delivery status

StatusMeaning
not_requestedThe request was created with delivery "none" — you are delivering the link.
queuedAccepted and waiting to be sent.
sentHanded to the email provider.
failedformbase could not send it. See Troubleshooting.
bouncedThe provider reported a hard bounce or a complaint for that address.
  • The invitation is sent at most once. It is queued, and dropped unsent if the request ends before the queue reaches it — nobody is invited to a dead link.

  • If it never arrived, send a reminder. requests.remind carries the same link and counts against the eight-reminder cap. On Free, where reminders aren’t available, copy the request’s link and send it yourself.

  • Invitations and reminders share a budget of 10 emails per day per form and recipient address.

Reminders

A reminder schedule is an ordered list of idle offsets — 1 day, 3 days, 1 week — after which formbase emails someone who has gone quiet. One schedule serves two kinds of target: a public-link respondent sitting on an unfinished draft, and a request recipient who has not completed.

It lives in Settings → E-mail Notifications → Send reminders. That switch is the master: turn it off and neither channel gets the form’s schedule.

SettingWhat it does
Send remindersThe master switch for both channels. Pro or Business.
Reminder scheduleUp to five steps, chosen from 12 hours, 1 day, 3 days, 1 week, and 2 weeks.
Public-link draftsA shaded block with two pickers. To: the field that holds the address a draft gets written to. Wait for: a draft is chased once the To field and every field you pick here are filled in. Request reminders skip this block and always go to the request recipient.
Subject and bodyOne reminder email, shared by both channels. Mentions are allowed.

How the schedule runs

  • Offsets are measured from the target’s last activity, not from creation. A schedule of 1 day then 3 days means “one day idle, then three days idle”.

  • New activity restarts it. If the recipient opens the request and answers something, the clock goes back to the first step.

  • It stops on its own once the request is completed, expired, or canceled.

  • A sweep runs every 15 minutes, so a reminder lands within a quarter of an hour of the step falling due, not to the second. A schedule that fell far behind is not fired as a burst: the gap you put between two steps is honoured.

  • Eight reminders is the hard ceiling for one request, scheduled and manual together. Activity can restart a schedule forever; this is what stops that becoming a loop.

Overriding per request

An automation can pass its own reminders when creating a request — [“2d”,“5d”] for a schedule of its own, or an empty list to switch reminders off for that one request. An explicit schedule wins even over the form’s master switch, because a caller that passed one asked for reminders on this request specifically.

Leave reminders out and the request inherits the form’s schedule, if the master switch is on and the request has a recipient address.

Chasing someone now

You do not have to wait for the next step. Send reminder in the request drawer — or requests.remind from an automation — queues one immediately. The automatic schedule is untouched: the next scheduled reminder still lands when it was going to.

Two floors apply: at least ten minutes between manual reminders, and the same overall ceiling of eight per request.

Expiry

Every request has a hard end. When it passes, the link stops working, the status becomes expired, and your automation is told through the callback — so a workflow that has been parked for a month resumes instead of hanging forever.

  • Default: 30 days after creation.

  • Maximum: 365 days. Pass expiresAt as a millisecond timestamp to set your own.

  • After expiry the link shows the outcome page — a plain notice, never the form.
  • A sweep flips lapsed requests every 15 minutes, so the status and the callback follow expiresAt within a quarter of an hour. The link itself stops opening the moment the expiry passes.

A seven-day request with its own reminder schedule
json
{
  "method": "requests.create",
  "params": {
    "formId": "j57...",
    "recipient": { "email": "ada@acme.com", "name": "Ada" },
    "delivery": "email",
    "reminders": ["1d", "3d"],
    "expiresAt": 1795392000000,
    "callbackUrl": "https://automation.example/webhook/resume-abc"
  }
}