What are user attributes?

User attributes are small pieces of information that can be assigned to your Messenger chatbot users as they navigate its flow. Think of them as tags or labels. Attributes allow you to automatically collect information from users about them, their interests, or their feedback.

User attributes are a no-code feature, useful for basic bot building or advanced bot building. 🍰

user attributes

Types of user attributes

There are three types of user attributes in Chatfuel:

  1. System attributes βš™οΈ
  2. Custom attributes 🎨
  3. Global attributes 🌎

System attributes βš™οΈ

System attributes are automatically pulled from Facebook, so they can't be edited by you, the bot-builder. They're available in every chatbot, and contain information from user Facebook profiles, like their Messenger ID, gender, first and last name, etc. System attributes in Chatfuel appear in purple brackets.

  • For example: If you want your chatbot to greet users by name, you can tell it to pull that data from their Facebook profile and add it to the Welcome Message (so it says Hi Jeremy! instead of just Hi!, for instance).

user attributes

Custom attributes 🎨

Custom attributes are user tags that you, the bot builder, can create. Then, set up your chatbot to gather values from each user to fill your custom attribute(s). You can add as many attributes as you need. Custom attributes in Chatfuel appear in brown brackets.

  • For example: The chatbot for this ecommerce skincare brand created a custom attribute called {{skin type}}. 🧴The bot quizzes the user to find out what their skin type is, and automatically saves the data to this custom attribute. So the value for a user can be either oily, dry, or combination. The brand then used the attributes to recommend products relevant to each user.
custom user attributes

Global attributes 🌎

Global attributes work as default values that you can set for certain attributes in your chatbot. They have two main uses:

  1. Fill them with your brand's or your client's address, phone number, etc. If you need to insert that value multiple times in a flow, this function lets you just type the attribute name (like {{company name}}) and the data will automatically populate. That way, you don't have to type out all the information each time.
  • For example: Let's say you run a marketing agency, and you build the framework of a chatbot that you customize for multiple clients. πŸ‘₯ You can add each client's information as the default value within their version of the bot, and it'll populate every time that attribute appears in the flow.

2. Fill them with a generic fallback value that will appear if your Messenger chatbot hasn't received an attribute value from a user.

  • For example: Let's say a pet-supply store asks users if they're shopping for a dog or cat, and a certain user doesn't answer that question. 🐢 🐱The store could set a fallback value of pet for the {{pet type}} attribute. When that attribute is used later in the flow, the message show up as Great choice! Your pet will love it instead of Great choice! Your {{pet type}} will love it.

How to gather values for user attributes

Choosing a method or tool to collect information from users to fill your attributes with depends on the type of attribute. Note that user attributes can't contain multiple values.

System attributes βš™οΈ

Remember, you can't set the value of a system attribute, because this data comes directly from a user's Facebook profile. (The only way the value of a system attribute could change is if the user changed the information on their profile.)

Custom attributes 🎨

Your chatbot can gather values for custom attributes from users during its conversation with them. You can use any of these four Chatfuel plugins to do this:

#1. Save User Input plugin

Your chatbot can automatically collect values for custom attributes with the Save User Input plugin. Here's how:

1. In the Automate tab, choose any block where you'll be asking users for information. From the Add Element menu at the bottom of the screen, click + More and select the Save User Input plugin from the menu that appears.

chatfuel plugins

2. Add text in the Message to user box that asks the user for the information you want. (Add extra fields below if needed.)

3. Under Save answer to attribute, name the attribute you want to save user responses to. Do this by typing two open curly brackets {{, the name of your new custom attribute, and two closed curly brackets }}. (Or, if you want to save values to an attribute that already exists, start typing its name and select it from the drop-down.)

save user input

4. Once users have gone through this flow and answered the question, you can find their values for the attribute(s) in the People tab.

people tab

#2. Set User Attribute plugin

This plugin will automatically assign a custom-attribute value for a user based on a part of your chatbot's flow they've seen. Example values for this plugin include yes, no, and not set. You can set a custom value, too.

For example: If you want to have a record of how many users have seen Block A in your flow, set up this plugin below that block. Have your chatbot assign the value yes to any user who makes it to that block.

Here's how to set up this plugin:

1. In the Automate tab, click + More on the Add Element menu at the bottom of the screen, and select the Set User Attribute plugin from the menu that pops up. Once the plugin appears in your workspace, drag and place it under the desired block.

chatfuel plugins

2. Create the attribute name and assign a value. In our example, the attribute name would be {{Block-A}} and the value could be yes or received to indicate that the user reached this block.

default answer

#3. Quick replies

The easiest way to set values for custom attributes is with quick replies.

  1. Choose Quick reply from the Add Element menu at the bottom of the screen in the Automate tab.
  2. In the Save to: field, create a name for your new custom attribute (or start typing an existing one and select it from the drop-down). Then, whichever quick reply the user chooses from that set will be saved to that attribute.
user preferences


Advanced users can also add custom attributes using the JSON API plugin.

json api

Global attributes 🌎

You'll need to set values for global attributes manually. Here's how:

1. Go to the Configure tab in Chatfuel. Find Global Attributes and click Manage global attributes.

global attributes

2. Find or name a new attribute there. Let's say you want to mention the name of your brand or a client's brand in your chatbot's flow. You could name an attribute like {{company_name}}.

3. Then, set a value for this attribute (like Chatfuel, for our brand-name example) that you want to appear every time {{company_name}} shows up in this bot's flow. Remember: You could create a fallback value to appear instead if your global attribute doesn't have a value for a particular user.

The magic of this feature is that you can simply change the value whenever you want, and it will update everywhere the attribute is used in your bot's flow. ✨

How to incorporate user attributes into your chatbot's flow

You can use tags or attributes of all types anywhere in your chatbot, including in text cards, reengage messages, the Notify Admin via Email plugin, the Save to Google Sheets plugin, etc.

To add attributes of any kind to your bot flow or to a plugin, type two curly brackets {{. Then, start typing the name of the attribute. Existing attributes will appear in a drop-down menu. Select the one you want, if it already exists.

  • Or, you can create a custom attribute on the spot by typing out a new name and finishing with two closed curly brackets }}.

For example, if you wanted to add a personalized greeting to your chatbot's Welcome Message, you could start typing {{first name}} and select that system attribute when it appears in the drop-down. When a user goes through the flow, the name from their Facebook profile will appear.

welcome message

It works the same way for adding a custom or global attribute to the flow or to a plugin.

Example use cases for user attributes

User attributes allow you to:

  • save user info to learn more about your audience
  • sort your audience into segments based on qualities or preferences, so you can retarget effectively
  • personalize the chat to each user
  • automatically gather user information for specific purposes, like applications and orders

Here are some examples.

System and custom attributes βš™οΈπŸŽ¨

Remember, you can always view the values of system and custom user attributes in the People tab. Here are six scenarios where these types of attributes can be especially helpful.

#1. Improve ad targeting

In the People tab, you can sort users into segments based on any attribute(s). Then, you can use Segment Sync to export this data to Facebook Ads Manager. That way, you can easily create custom or Lookalike audiences for highly targeted and effective Facebook ads. Learn more about using Segment Sync to better reach your target audience.

targeting audience

#2. Accept applications

If your bot accepts user applications of some kind, it can store the values for each part as a custom attribute. First, collect the information via the Save User Input plugin.

save user input

Then, use the Notify Admin via Email plugin to have the data sent to your email each time there's a new submission.

notification on email

You can organize the automated email however you like. Here's an example of how it could look.

#3. Collect feedback

Easily collect feedback on your workshop, webinar, support team's performance, a user's stay at your Airbnb, etc. Use the same two plugins as you would for accepting applications (above).

#4. Take orders

Businesses that need to accept and fill pickup or delivery orders can use attributes to streamline the process, like:

  • restaurants accepting to-go orders
  • brick-and-mortar stores accepting pickup orders

Custom attributes let you easily process a customer's order without having to read their entire conversation with your chatbot. That means you can quickly confirm the order and prepare it for delivery or pickup, and the user can receive or collect the order sooner.

#5. Make recommendations

You can set your bot to ask questions, capture the data from user answers, and save it to attributes. Based on those attribute values, the bot can then make recommendations, like:

  • suggesting the nearest location of your business
  • recommending a restaurant or hotel in the area
  • helping guide the user through news or blog posts on a topic of interest to them (possible with the Save User Input and Google Site Search plugins. Get more information on user-defined searches).
user defined search

#6. Offer quizzes

You can use custom attributes with math operations to:
provide quiz scores or results to chatbot users

  • qualify users for a loan or credit
  • or simply route people through your bot flow based on their answers

Global attributes 🌎

Find examples of how to utilize global attributes under Types of User Attributesβ€”the first section in this article.

Did this answer your question?