Match with my table
Match with my table looks each incoming item up in one of your tables or saved lists from My data, such as your customers, partners or stores. Compare a field of the items with a column of the table (same text, one inside the other, same phone number, same website), then add the table’s columns to the items that match, keep only the ones you already have, or keep only the ones you do not have yet. It is the simple way to skip existing customers or bring your own account data into a flow.
In the editor: Looks each incoming item up in one of your tables or saved lists (My data), for example your customers. Add the table’s columns to the items that match, keep only the ones you already have, or only the ones you do not have yet. When several rows match one item, it can send the item on once for each of them, so one product recall reaches every store that stocks it.
Settings
Table or list
A settingUpload a table on the My data page. Up to 5,000 rows are read.
Needed before the flow can run.
Field of the incoming items
TextClick one under Fields coming in.
Needed before the flow can run.
Column of the table
TextThe column that holds the same thing. Its name as in the table’s first row.
Needed before the flow can run.
They match when
Pick oneCapitals, accents and extra spaces are ignored. Phone numbers match however they are written.
- They are the same The same text once capitals, accents and extra spaces are ignored. "NAJD GRILL" matches "North Grill".
- One contains the other One value’s words appear in the other, ignoring punctuation and company endings such as LLC or Co. "Tandoor Express Midtown" matches "Tandoor Express".
- Same phone number The last 9 digits are the same, so +1 212 555 0101, 011 555 0101 and 0115550101 all match. Numbers shorter than 7 digits never match.
- Same website The same address once https://, www. and anything after the domain are removed. "www.qahwa.example/menu" matches "qahwa.example".
- The item mentions it
Then
Pick oneWhat happens after the lookup. Only the first choice adds fields; the other two let items through or not.
- Keep all, add the table’s columns Every item goes on with match_found (Yes or No); matched items also get the table’s columns.
- Keep only items in the table Only the items found go on, unchanged. For example, only your existing customers.
- Keep only items not in the table Only the items not found go on, unchanged. For example, skip your existing customers.
Name the added fields
TextEach matched item gets match_found (Yes or No) and the table’s columns as match_<column>.
Needed before the flow can run.
When several rows match
Pick oneShown with Keep all, add the table’s columns. When several rows of the table match one item, use only the first, or send the item on once for each matching row.
Only the first matching row’s columns are added.
- Use the first match One item in, one item out, with the first matching row’s columns. Flows made before this setting work this way.
- One item for each matching row The item goes on once for each matching row, each copy with that row’s columns, so one product recall reaches every store that stocks it. Up to 100 copies of one item and 5,000 items in all; the step says when a limit cut anything. Each copy stays its own result, so Only new and Results keep them apart.
What comes out
Each item that leaves the block carries these fields, to use in the blocks after it as {{field}}.
Then: Keep all, add the table’s columns
With Name the added fields left as match. The other two choices add nothing: they only let items through or not.
match_found: Yes when the item was found in the table, else No.match_<column>: Each column of the matched row (up to 40), named after the column in lower case. Only on items found.match_tier: For example, a column called tier.
When several rows match: One item for each matching row
With Then: Keep all, add the table’s columns.
match_match_n: Which matching row this copy is for: 1, 2, 3...match_match_count: How many rows of the table matched the item.match_row: The row this copy is for (its id, name or code), so each copy is a result of its own.
How to use it
A product recall that reaches every store
A grocery chain gets recall notices for products by their code, and each product is stocked by many stores. Every store manager must hear about it the same hour.
Before: Head office forwarded each recall to a shared inbox and someone called the stores one by one.
With the flow: Each of the 14 stores that stock the product gets its own email with its own store name and address.
One item for each matching row turns one notice into one item per store, and Email set to One email per item writes to each store’s own manager.
Restaurants that are not partners yet
A food delivery app wants its sales team to call only the well-rated restaurants that have not joined.
Only items not in the table lets through just the prospects; current partners never reach the CRM.
Account number and route on every shop
A distributor wants the morning list to show each shop’s account number and van route from its own customer table.
Before: Reps looked up every shop in a spreadsheet before calling.
With the flow: Each shop arrives with match_account_number and match_route; new shops show match_found: No.
Which competitors are within our own malls
Matching by website catches stores whose names are written differently on the map and in the tenant list.
New merchants that already bank with us
A bank wants to offer card terminals first to new merchants that already hold an account.
Same phone number matches however the number is written, with or without the country code.
Companies hiring that are already customers
One flow, two audiences: a customer that is hiring goes to its account manager, a new company to sales.
Clinics on our panel, with their contract tier
An insurer keeps its panel of clinics in a table and wants the contract tier next to every clinic a scan finds.
Before: Analysts matched clinic names by hand and missed spelling differences.
With the flow: Every clinic comes with match_found and match_tier; capitals and accents no longer break the match.
Skip the client’s existing stockists
The prospect sheet has only shops that do not stock the client’s brand yet.
Good to know
- Up to 5,000 rows of the table or list are read. The match is worked out on the server when the flow runs; the editor’s preview lets every item through and says so.
- If the table has no column with the name you typed, or no incoming item has the field, the step fails and lists the names it does have.
- When several rows match, the first one is used, unless When several rows match is set to One item for each matching row: then the item goes on once for each of them (up to 100 for one item, 5,000 items in all).
- A value longer than 2,000 characters is cut there, and the step says how many were cut.
- One contains the other compares whole words, so short names do not match inside longer ones by accident. On very large lists it can be refused as too slow; use They are the same instead.
- A table with no rows yet is not an error: every item counts as not found.
- For a table in your own database (PostgreSQL, BigQuery, Snowflake) use Database lookup; for HubSpot or Salesforce, CRM lookup.
- Free: matching costs no credits.
Works well with
- My data: Brings in a table you uploaded or a list you saved on the My data page: your stores, customers, target accounts or sites.
- Map business scan: Finds businesses on online maps live: name, category, rating, address, phone, website and whether it is open.
- Only new: Lets through only the items this flow has not found before, so a daily flow sends only what is new.
- Database lookup: Looks each incoming item up in a table of your own database (PostgreSQL, BigQuery or Snowflake): your customers, your sites.
- CRM lookup: Looks each incoming item up in your CRM through its own search: is this company already a customer, is this email a contact?
- Branch: Splits items in two.
- Filter: Keeps only the items that match a rule.
- HubSpot: Powerful CRM that offers tools for sales, customer service, and marketing automation.
Stories with it
- First through every new bakery's door (Food distribution)
- One clean prospect list, every shop once (Organic cosmetics)
- Trouble at a borrower, read the same morning (Commercial banking)
- The tenant outgrowing its floor, seen in its hiring (Office leasing)
- No guest drags a suitcase past a closed street (Short-term rentals)
- Full shelves before the heatwave (Pharmacy)
- From crash to garage in one call (Car insurance)
- The forty clinics that need a visit (Pharmaceuticals)
- Closing the gaps in the care network (Health insurance)
- Insured ships out of the typhoon (Marine insurance)
- A covered clinic near home within the hour (Health insurance)
- Trucks that arrive when the boxes do (Container haulage)
Help articles
- Your own tables and lists (My data): Upload a CSV, save lists of results, and use them in flows.
Guides and terms
- How to build a B2B lead list from the map: Every business of a type in your territory, with contacts, scored, in a sheet or CRM.
- How to skip your existing customers: Only prospects reach your team, never someone you already serve.
- Data enrichment: Adding details to records you already have.
Try it
Build a flow with Match with my table on the home page, no account needed, or book a call. Try it live