🇪🇸 Español 🇬🇧 English 🇧🇷 Português

IVR Node: Contact Lookup

How to use the Contact Lookup node in the IVR flow editor to identify the caller by phone number and store their details for the rest of the flow.

Jul 11, 2026

The Contact lookup node (ContactLookup type) searches your workspace's contact list for the person calling, matching by the caller's phone number. If it finds a match, it stores their details in variables you can use in later nodes (Condition, Branch, personalized prompts). It needs no configuration at all — just drop it into the flow wherever you want the lookup to happen.

How it works

The node normalizes the caller's number to E.164 format and also tries a few variants (with and without +, digits-only) to maximize matches against whatever is stored in the contact's phone field, within the same workspace as the channel.

Outputs

  • found: a matching contact was found. The variables contact.id, contact.name, contact.email, contact.tags (a list of tags), and contact.is_new = false become available.
  • not_found: no contact matched that number. contact.is_new is set to true.

Example

You place Contact lookup right after the opening greeting. You wire the found output to a Condition with the expression contact.tags includes 'vip' to prioritize customers tagged VIP; you wire not_found straight to the main menu, since it's likely a new caller who may need to register first.

Tips

  • Place it early in the flow, before any node that references contact.* in its configuration (Condition, personalized messages, etc.) — if it hasn't run yet, those variables will be empty.
  • The contact's phone field must actually be populated for this node to find a match; if your contacts get created without a phone number (say, only through a WhatsApp identifier), lookups will consistently fail.
  • Pair it with the Conversation lookup node (if available on your plan) to also route to the same agent/team that handled this customer last time.

Troubleshooting

If a contact you know exists always falls into not_found, check that the number stored on their record is in a recognizable format (with or without +, with country code) — the node tries several variants but can't guess a number stored in a very different format from how the customer is calling.

Was this helpful?

Related articles