Buni.aiDocs
USSDChatbotVoice (IVR)Automation

Contact

Creates or updates a contact from flow data, adds them to contact groups and sets custom properties, or retrieves an existing contact.

Contact saves the person you are talking to into your workspace's contacts. It can create or update a contact, add them to groups and set custom properties, or look up a contact that already exists.

When to use it

  • Save everyone who completes a registration flow as a contact.
  • Tag people who opt in to a campaign by adding them to a group.
  • Store a preference, such as a preferred language, on the contact profile.
  • Look up a returning user's saved details at the start of a flow.
  • For records that are not people, or that need your own structure, use Data Store.
Contact settings with Action Update or Create Contact, a contact group ID, and a custom property preferred_language

Settings

Quick templates at the top fill in the node for common jobs: Find by phone, Add to VIP group and Save preferred language.

Prop

Type

Outputs

One output. The result is passed to the next node and saved as {{state.contactUpdate}} (or your output variable):

ActionResult
Update or Create Contactsuccess, identifier, groups (the group IDs added) and the store's response. On failure, success is false and error says why.
Retrieve Contactsuccess (false when no contact matched), identifier, and contact: the contact record with its name, phone number, groups and custom properties.

Example

A WhatsApp chatbot asks new users for their preferred language, then remembers it:

  1. Form with output variable prefs collects a language field with the choices English, French and Swahili.
  2. Contact, Update or Create Contact, Contact Groups set to your opt-in group's ID, custom property preferred_language = {{state.prefs.language}}.
  3. Next time, a Contact node with Retrieve Contact and output variable contactLookup at the start of the flow reads it back as {{state.contactLookup.contact.preferred_language}}.

Tips and limits

  • Contact Groups takes group IDs, not names. Copy the ID from the group on the Contacts page. A value that is not a group ID is stored as typed and matches no group.
  • Custom properties are saved as top-level fields on the contact, so avoid names that clash with built-in ones such as name or phone_number.
  • On USSD, voice and automation projects the identifier is saved and matched as the contact's phone number, so give it a phone number there. Pointing it at an email creates a contact whose phone number is that email.
Last reviewed 24 September 2026

On this page