A lookup table turns a value you have into the value another system expects. For example, the supplier name on an invoice becomes the supplier code in your accounting system. Each row has a Source (the value you have) and a Target (the value you want).
When a bot meets a value the table does not hold, it adds that value to the table with an empty target. Someone types the target once, and every later run matches it.
1. Create a table
- Go to Library › Lookups and add a new one.
- Give it a Lookup table name: letters, digits and underscores, starting with a letter, no spaces. Steps find the table by this name, so renaming it breaks them.
- Choose what happens On a missing value (see below).
- Click Save, then add rows.
Capitals, spaces at the end and accents are ignored when two sources are compared. Café and Cafe are the same source, so you cannot have both.
2. Add rows
- Add a row types one in.
- Upload a file takes a CSV, Excel or JSON file of up to 5 MB. In CSV and Excel files the first row is the headers. Choose Keep them, and merge the file in to add new sources and update the targets of ones already there, or Replace them with the file to make the file the whole table, misses included.
- A table can also be filled from a connector's API, set in its settings. Refresh now reads it again. Such a table takes no misses, because the next refresh would wipe them.
Under Every row you can search, change a row where it is, tick rows to Give them one target or Remove them, and Download as CSV or Download as Excel. Replace text in every target… changes the same characters in every target at once; sources are never changed.
3. Use it in a process
Add the step Look up a value in a lookup table to a bot process and fill in:
- Value to look up, for example
{invoice.from}. - Lookup table: the table's name.
- Variable: where the target is stored.
- How to match (see below).
- Under more: Also try these values (such as a VAT number), and Add values nothing matched to the table, which is on by default.
A cloud flow can use a table too, with {{ field | lookup("TableName") }}. It matches the same way as exact, and follows Then try and the missing-value rule.
The table's Where it's used lists every process with a step that reads it.
4. How a value is matched
The bot tries these in order and stops at the first match:
- Exact: the same text, ignoring capitals and spaces at either end.
- Also try these values: each one, exactly.
- Name (when How to match is
nameorclose): the same company once legal forms such as (Pty) Ltd, punctuation and capitals are dropped. "ABC Trading (Pty) Ltd" matches "abc trading". - Close (when How to match is
close): the clearly closest name. It must score at least Close: lowest score (0.92) and be ahead of the next best by Close: lead over the next best (0.08). A close match is used for that run only and never saved. - Then try: the same rules on the next table (see below).
- The table's rule for a missing value.
A row with an empty target never matches. If two rows have the same cleaned name but different targets, the bot takes neither and moves on.
5. Then try another table
In the table's settings, Then try names another table to search when this one has no match. For example, try your own supplier list first, then a shared one. At most 3 tables are searched in all.
Only the missing-value rule of the table named in the step applies. The other tables' rules are ignored. Tried next by on a table shows which tables fall through to it.
6. When nothing matches
On a missing value decides what the step gives back:
- Empty (drop the field)
- Pass the original value through
- Use a default value: the Default value you type, such as
REVIEW. - Fail the step
The value is also recorded as a miss on the table named in the step, unless the table is refreshed from an API, holds 5,000 rows or more, or the step's Add values nothing matched to the table is off.
7. Fill in the misses
The misses lists the values the bot met and could not match. Each one falls back on every run until somebody types its target.
- Type the target and save. The next run matches it.
- Suggest with AI picks an answer for each miss from the answers already in the table. Nothing changes until you accept one, or click Accept all AI is sure of.
- A value that should never match can be removed. It comes back the next time the bot meets it.
Ask someone by email
In the settings, Email a link to fill in missing values takes up to 10 addresses, and What to tell them the instruction they see. When the bot records new misses, each person gets one email with a link. They need no account, and the link shows only the values it asks about. One reminder follows after 2 days. Email these now asks about every row without a target straight away.
The email never contains the values themselves. An answer typed through a link goes live at once, and the row shows Emailed link until someone signed in changes it.
8. Rows that are not needed
When every step that reads the table matches by name, Automize flags rows that change no answer as Not needed, and rows with one name but two targets as One name, two targets. Filter Every row by either. Remove the rows that are not needed deletes them for good, after asking.
9. If the bot cannot reach Automize
The bot reads each table once per run and keeps the last good copy on the machine for 24 hours. If it cannot reach Automize, it uses that copy and records no misses. With no copy, the step fails rather than guess. The bot's log names the table and how it matched, never the value or the target.