Email routing

Email routing lets one form notify different people based on what the visitor picked. You configure named aliases in the dashboard, such as sales, support, or billing, and each alias gets its own To, CC, and BCC recipients.

When a submission includes a matching hidden route value, Form Plume sends the notification to that alias's recipients. If there is no match, the form uses the default notification recipients instead.

When to use routing aliases

Use routing aliases when one public form feeds more than one team:

  • A contact form with "Sales" and "Support" choices
  • A demo request form that routes enterprise leads to a senior rep
  • A department form that sends billing, legal, and partnership messages to different inboxes
  • A campaign form where each landing page should notify a different owner

If you want a route to notify multiple people, add all of them to that alias's To, CC, or BCC list. There is no extra code for that part.

1. Create aliases in the dashboard

Open the form, go to Settings -> Email -> Routing aliases, then turn it on.

For each alias:

FieldWhat it does
AliasThe route name your form sends, for example sales
ToPrimary notification recipients for this route
CCRecipients copied on this route
BCCRecipients blind-copied on this route

Keep aliases simple: lowercase letters, numbers, underscores, and hyphens. Examples: sales, support, enterprise_sales, billing-team.

2. Send the route from your form

Add a hidden field named _route or _formplume_route (see Special fields). Its value must match one of the aliases configured in the dashboard.

<form action="https://api.formplume.com/f/{public_slug}" method="POST">
  <input type="hidden" name="_route" value="sales">
 
  <label>
    Email
    <input type="email" name="email" required>
  </label>
 
  <label>
    Message
    <textarea name="message" required></textarea>
  </label>
 
  <button type="submit">Send</button>
</form>

_formplume_route works the same way:

<input type="hidden" name="_formplume_route" value="support">

Routing from a select field

If the visitor chooses a department, keep the public select field separate from the hidden route field. Then set the hidden value before submit.

<form id="contact-form" action="https://api.formplume.com/f/{public_slug}" method="POST">
  <input type="hidden" name="_route" id="form-route" value="sales">
 
  <label>
    Department
    <select id="department" name="department">
      <option value="sales">Sales</option>
      <option value="support">Support</option>
      <option value="billing">Billing</option>
    </select>
  </label>
 
  <label>
    Email
    <input type="email" name="email" required>
  </label>
 
  <button type="submit">Send</button>
</form>
 
<script>
  const department = document.querySelector("#department");
  const route = document.querySelector("#form-route");
 
  department.addEventListener("change", () => {
    route.value = department.value;
  });
</script>

Route values only select aliases you already configured. A visitor cannot submit an arbitrary email address and make Form Plume notify that address.

Fallback behavior

Routing is intentionally forgiving:

  • If _route is missing, the form uses the default notification recipients.
  • If _formplume_route is missing, the form uses the default notification recipients.
  • If the value does not match a configured alias, the form uses the default notification recipients.
  • The route control field is not stored as a normal submission field.

This means you can roll routing out one landing page at a time without breaking the rest of the form.

On this page