Add Shortcuts to Messages and Cards

(John Jackson) #1

We have a great new feature for you. You’ve been able to add shortcut buttons to the welcome message for some time now, and we’ve supported buttons on questions pretty much since the beginning.

From today, you can add shortcuts to any message, card or card set.

A shortcut simply triggers that word or phrase, as if the user had typed the same word/phrase in.

Shortcuts on Messages:

Shortcuts on Cards:

This is one of those long awaited features that we know you’ll get tons of use out of. Have fun!

Link to another Bot from a Card - Card Link URL
(Sharry Stowell) #2

Nice work guys :slight_smile:
Looking forward to using this.

1 Like
(Augusto Vera) #3

I’ve tried to use it nevertheless I dont get how to link the response of a chosen shortcut further down the road. The menu to select responses from other actions appear OK except the Card Set.

(Karen Barker) #4

Hi Augusto, :wave:

There’s 2 ways to use the shortcuts from a card set.

  1. Use the shortcut as a keyword trigger. So you would stop the current flow after sending the card set and then have a keyword trigger listening for each of the shortcuts.
  2. Alternatively you could put a Bot > Ask a Question action immediately after the card set, asking the user to choose one of the options on the card set. When the user clicks on the shortcut button this will then be stored as the answer to the question, which you could use later on in the flow.

Hope this makes sense. :slight_smile:

1 Like

Hi @KarenBarker, I have a similar issue, hopefully you can help. I’m using shortcuts in a set of cards, and the shortcut text is dynamically generated with an attribute. All shortcuts would be in the in format Select {attribute} (so Select {attribute1} for card1, Select {attribute2} for card2, etc.) and I then setup a flow that listens to “Select” as keyword. I can start the second flow no problem, but then I need to know which attribute the user clicked. Is there any way to do that? I don’t seem to find a way to detect which exact keyword has triggered a flow.

Can you help?


(Daniel Beckett) #6


The only way I can think of doing this would be to use Bot > Ask a Question to capture the answer so that you can save it to another attribute e.g. ‘Selection’ and then you could use the Flow service to pass them to the other flow and retrieve the attribute that you just saved so that you know which selection they made.


Thanks @DanielBeckett!


Hi @KarenBarker,

I’m trying to use the first option

Use the shortcut as a keyword trigger. So you would stop the current flow after sending the card set and then have a keyword trigger listening for each of the shortcuts.

and save the message to an attribute after a trigger.

The trigger gets fired in a separate flow and works fine, however the attribute is always blank.

I’ve tried setting the attribute using:


and even hardcoding the attribute and using a filter against the group (and message)

But using:


always returns a empty result.

What am I doing wrong? :confused:

(Karen Barker) #9

Hi @invbot :wave:

If an attribute has been set in the same flow as you’re trying to use the value in, then you will need to use a Get Attribute action first and then use the value returned in this action for the attribute (i.e. {{get_an_attribute.value}} ).

You can use {{Trigger_Name.attribute__AttributeName}} to reference an attribute that was already set against the response path when the flow was originally triggered. This value isn’t then updated until the next time the flow triggers.

The attribute will need to be set as {{capture_order.message}} in order to save the message sent by the user :slight_smile:


Ah, okay great - Thanks! :grinning:

I feel that the ability to store values (and redirect flows based) from card choices shouldn’t be this complex though. :disappointed:

Are there any plans to streamline this process?

(Daniel Beckett) #11


We’re always looking to improve the Flow editor and the handling of attributes is certainly something that will be considered when working on new updates for the platform. There’s already a few related ideas posted over on the development roadmap so feel free to stop by and leave a vote for anything that you’d like to see :slight_smile:

(Swoop Loop) #12


Would like to ask if there is a way to pass data to the next flow where the shortcut button is redirected?

Thank you so much for the response.

(Karen Barker) #13

Hi @Swoop_Loop,

The buttons on a card set work as keyword flow triggers, therefore if you set up different flows with each of the shortcut buttons as triggers the respective flow will trigger dependent on the button the user presses.

Alternatively, you could use the Ask a Question feature after sending the card set and then whichever button the user clicks from the card set will be stored as the answer to the question.

I hope this helps, if you have any further problems please don’t hesitate to ask. :slight_smile:

(Andrew Catchpole) #14

@KarenBarker So you say that a shortcut can be used as a keyword trigger however correct me if I’m wrong but this is then in a new flow therefore the data from the originating flow is now lost?

Is there not a way to use the shortcut to goto a label within the flow?

Also within my flow I have an http request which has the response available in a JSON format. I can display the first record in a card then need to use the shortcut to trigger the next or previous record.

So several issues here;
a) I need to stay in the same flow to keep the JSON response - correct?
b) I may be able to increment to the next record using “n” expression. //need to check that
c) There’s no equivalent to go back to the previous record.
d) further there’s no way to directly index a record as the index is hardcoded within the expression e.g. #

(Karen Barker) #15

Hi Andrew,

The best way to handle this if you want to stay in the same flow would be to Ask A Question immediately after the card. The shortcut button being pressed then becomes the answer to the question as opposed to triggering a new flow. You can then continue in the flow and if required use the answer to the question to shape the direction the user takes in the flow by going to a label etc.

The code service would be the best option to allow you to navigate through your JSON object and return the required node to add to the card.

1 Like
(Andrew Catchpole) #16

@KarenBarker @DanielBeckett I agree that Ask A Question appears to be the only workaround however this breaks the Card paradym which provides for these types of shortcuts. Having another activity step to ask the question is messy.

Could you consider jumping to Labels within the flow as a new feature for Cards?

Also, there is a downside with the workaround that this invokes another flow which, correct me if I’m wrong, would be set against the usage i.e it would cost more to implement?


ps - Flow XO is a great platform so I don’t want to sound negative - just needs some relatively simple tweaks :slight_smile:

(Daniel Beckett) #17

Hi @Smartview_Property

The workaround for using a question after a shortcut actually saves on interactions since you’re keeping the user within the same flow.

Thanks for the suggestions though - we’ll certainly keep them in mind :slight_smile:

(Andrew Catchpole) #18

@DanielBeckett I can see that this helps Flow XO’s commercial model however this is restrictive. I need to try this but is it legitimate to re-trigger the same flow and is this then classes as a new integration?

(Daniel Beckett) #19

Hi Andrew,

Since ‘Ask a Question’ would be capturing the shortcut values and not another flow an extra interaction wouldn’t be used. An interactions is only counted when a flow is triggered, i.e. the first action in the flow is run. When using Goto a label in the same flow this also doesn’t use an additional interaction.

(Andrew Catchpole) #20

Agreed this is okay for Ask A Question which can goto a label however for Short Cuts eg in a Card cannot use goto label and can only go to a flow. Even if the flow is in the same flow this triggers another trigger event which is of course counts towards the interaction allowances