Measure message effectiveness with goals

Give every message a goal, so you can see how well it prompts users to act.

Beth-Ann Sher avatar
Written by Beth-Ann Sher
Updated over a week ago

Intercom makes it easy to measure the effectiveness of your messages with our goals, A/B testing and control group features. First, let’s look at goals.


Every message you send has a goal. But open and click rates will only tell you so much. Goals are the true measure of a how message is performing. When creating an ongoing message, you can set a goal to measure its effectiveness. You can see each user that matched the goal after receiving the message.

To add a goal to an ongoing message, choose it from the dropdown under 'Set your goal'. Next, choose the result you want to measure. In the below example we set our goal as 'Web sessions is increased'. Each user who gets this message, who then comes back to the app, will contribute to this goal's total.

You should also set a limit on how long your customers' actions should be counted towards the goal. For this example, we'd like all customers who have additional web sessions within 3 days of receiving the message to be counted. 

Pro tip: With a longer time limit you'll see a higher percentage of recipients hit the goal, but it's also more likely their actions have been impacted by other factors, including your other messages.

You can set a goal using any piece of data in Intercom, whether it's an event or a user attribute; it can be any desired outcome for the message. For example, your goal could be to see users upgrade to your pro plan, to increase their iOS sessions, to send more messages, or to upload an avatar.

Once the message is live, you can track your goals performance on the message stats bar.

When setting up a date goal, it is only possible to choose "has any value".

How are goals calculated?

Goals are calculated based on the number of messages sent. 

You can easily filter your goal by after the number of messages sent, opened or clicked:

Pro tip: You can of course add goals to one-off messages too. 👌

Important: If the user has already matched the goal before being sent the message, they will not contribute towards the goal percentage.

When do we check Message goals?

Every time an update is made to a user (regardless of the update being made via ping / REST API / CSV import), we will enqueue a goals check.

If the update that was made includes a change to the specific goal attribute, then the goal can be triggered - however updates that do not specifically update that attribute, will not trigger the goal. This is because when we enqueue a goals check, we only check the difference (diff) that was created, and we do not check the full user profile.

As an example, if a user pings, we will enqueue a goal check, but the only thing we are checking is the update of their last_request_at, not the full user profile. If an attribute for a user is updated in the ping (e.g. favourite fruit is orange), we will check the goal against the changes made to last_request_at + favourite_fruit, but not against any other attributes that are on the user's profile.

Tip: The reason that we do not check the full user profile every time we enqueue a goal check is that users could then start triggering goals based off of data from before they received the message.

What's next?


Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts

Did this answer your question?