Lookup tables
A Lookup table step picks a value based on one answer. Sales goes to Anna, Legal goes to Lex, everyone else goes to finance. The steps after it use that value like any other variable: as an email recipient, an approver, or text in a message. It’s on every plan, in both Form submitted and Form abandoned workflows.
Without it, the same thing takes a Route with a branch and a copy of the email for every department. With a lookup table it’s one table and one email.
Set it up
Section titled “Set it up”Click Add step, then Lookup table under Logic. In the step:
- Based on: pick the question. Any question that has an answer works, except files, signatures, payments, addresses and database choices.
- Rows: each row says “when the answer is this, the value is that”.
- Otherwise: the value when no row matches. It’s required, so there’s always a value.
- Name: what later steps call the value, like Approver.
The step’s card on the canvas reads like Department → Approver · 3 values.
For a question with options (a dropdown, radio buttons, checkboxes, Yes/No, a rating or a country), each row is an option. Rows follow the option, not its wording, so renaming an option keeps its row.
- A question with up to 20 options starts with a row for each. Fill in the ones that need their own value; a row left empty uses Otherwise.
- A longer list, like every country, starts empty. Add rows for the options that need a value with Add a row for…; all the others use Otherwise.
For any other question (text, email, number and so on) you type the answer to match. It matches when it’s the same text, ignoring capitals and spaces around it: sales and SALES both match a row for Sales.
When a respondent can pick several options, the first row in the table that matches wins. Put the rows in the order that should win.
A table can have up to 200 rows. Each value can be up to 1,000 characters, and values are plain text: they can’t hold variables.
Hints in the step
Section titled “Hints in the step”The step tells you where the table and the question disagree:
- Options without a value are listed, like 1 option not in the table: Legal → uses Otherwise, with Add row to add them. On a long list it only counts them.
- A row for an option that was deleted from the question is marked Option no longer exists, with Remove. It’s never removed for you: an older version of the form, or a revision of an older response, can still carry that option.
When you publish the form, the publish dialog also tells you when a new option goes to Otherwise in a lookup table, and when a row’s option is removed. Neither stops the publish.
Use the value
Section titled “Use the value”In a step below the lookup table, click Insert variable. The value is listed under Lookup tables by its name. Renaming the table later keeps every step that uses it working.
- Email: pick it in To.
- Approval: pick it as an approver.
- Any text: a subject, a message, a Slack or Teams post, a sheet column, a Notion or Airtable field, a webhook value.
A step only offers the lookup tables that run before it on every path. A step in another branch, or after a Condition or Route when the lookup table is inside only one of its branches, doesn’t get it: on the other paths there would be no value. The workflow won’t publish while a step uses a lookup table it can’t rely on.
Emailing the value on the built-in sender
Section titled “Emailing the value on the built-in sender”On the built-in Nextforms sender, a lookup table you email to (or use as an approver) can only hold addresses the sender may reach: team members and verified addresses. Publishing checks every row and Otherwise, and names any value that isn’t allowed. To email other addresses, send that step through your own email provider.
In a run
Section titled “In a run”The run shows what the table picked, like Department = Sales → [email protected], or (Otherwise) when no row matched. In a test it runs for real on your sample answers, so you see the value the steps after it get. When a respondent revises their response, the workflow runs again from the start and the table picks again for the new answer.