Transactions API will be deprecated on May 3, 2023, ahead of the Conversational Actions sunset on June 13, 2023. For more information, see
Conversational Actions sunset.
Designing Transactional Conversations (Dialogflow)
Stay organized with collections
Save and categorize content based on your preferences.
Design a conversation to guide users through your transactional
flows. We've provided reference examples that you can use as a guide
when designing your own transactional Actions.
Examples
Design Tips
Make sure the dialogs sound natural and conversational — the way a real person would talk.
The text spoken by your TTS/voice does not have to exactly match the text shown in your chat bubbles. It works well if the chat bubbles are a subset of the spoken dialog.
Greet your visitors and get them engaged. Ask what they need and offer a few suggestion chips to get them started.
Before inviting the user to add items to the cart, do a backend check using actions.intent.TRANSACTION_REQUIREMENTS_CHECK
to confirm the user has payments set up for their Google Assistant.
Be prepared to respond to the same issues with voice as with other mobile or web experiences. For example, offer a similar item when you're out of a certain size or color, or invite users to sign up to be notified when the item is back in stock.
Note that the order summary is built with the data you pass via the API. The "Pay with Google" label helps users understand that Google facilitated the payment.
When requesting info from your users, like their address info, first let them know why you are making the request and how it will benefit them.
Google will present the purchase authorization method (either no auth required, password, or fingerprint) based on the user's settings. Sometimes our risk assessment will kick off an additional auth step like confirming CVV for a card.
After the payment is complete, be sure to send a receipt and an order confirmation. It's important that users understand that you are the merchant of record, and will follow up with all details about the order, not Google.
By default transactions can be performed on either a surface with a screen (such as an Android phone) or a voice-only surface (such as a Google Home).
To best support voice-only transactions, take extra care to design a good conversational experience that walks users through the full transaction experience.
Note that some transactions intents may require a screen. Most of these (e.g. adding a new delivery address, fixing payment issues, account linking) will be handed off to the phone automatically. If there are any additions to the conversation that are best displayed on a screen (e.g. presenting rich responses for card building, displaying a merchant ToS or privacy policy), you should check if the current surface supports the SCREEN_OUTPUT
or WEB_BROWSER
capabilities, and transfer to a new surface if not.
If you would rather not support voice-only transactions with your Action, you can set your Actions project to require a screen by navigating to Deploy > Surface capabilities in the Actions Console and setting Do your Actions require a screen output to Yes.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-09-18 UTC.
[null,null,["Last updated 2024-09-18 UTC."],[[["\u003cp\u003eDesign conversational flows for transactional Actions, guiding users through the process similar to a real-world conversation.\u003c/p\u003e\n"],["\u003cp\u003eRefer to provided examples like Shoe store, Ticketing, and Flower Shop to understand transactional Action design.\u003c/p\u003e\n"],["\u003cp\u003eFollow design tips to ensure natural dialog, clear communication, and a smooth user experience, including pre-purchase checks and handling potential issues.\u003c/p\u003e\n"],["\u003cp\u003eTransactions can occur on screen and voice-only surfaces; optimize for both by crafting a comprehensive conversational experience and leveraging surface capabilities effectively.\u003c/p\u003e\n"],["\u003cp\u003eRemember to inform users about data requests, purchase authorization, and merchant responsibility for post-purchase communication.\u003c/p\u003e\n"]]],[],null,["# Designing Transactional Conversations (Dialogflow)\n\nDesign a conversation to guide users through your transactional\nflows. We've provided reference examples that you can use as a guide\nwhen designing your own transactional Actions.\n\nExamples\n--------\n\n[](https://docs.google.com/presentation/d/1Zw-Cg4ODJWpEViJJT_LugxvFv1VeOB7Hw54wNQemrfg) [Shoe store Example](https://docs.google.com/presentation/d/1Zw-Cg4ODJWpEViJJT_LugxvFv1VeOB7Hw54wNQemrfg) \n[](https://docs.google.com/presentation/d/1RBVzklC8n7nPU98lRt1CkzDSFcBlaQf5PWVtlr58OQQ) [Ticketing example](https://docs.google.com/presentation/d/1RBVzklC8n7nPU98lRt1CkzDSFcBlaQf5PWVtlr58OQQ) \n[](https://docs.google.com/presentation/d/1icd64B_mJvba6lmhlfmUy35sejy5n-LsYYkvPXzUXgA) [Flower Shop Example](https://docs.google.com/presentation/d/1icd64B_mJvba6lmhlfmUy35sejy5n-LsYYkvPXzUXgA)\n\nDesign Tips\n-----------\n\n- Make sure the dialogs [sound natural and conversational](/assistant/actions/design) --- the way a real person would talk.\n\n- The text spoken by your TTS/voice does not have to exactly match the text shown in your chat bubbles. It works well if the chat bubbles are a subset of the spoken dialog.\n\n- Greet your visitors and get them engaged. Ask what they need and offer a few suggestion chips to get them started.\n\n- Before inviting the user to add items to the cart, do a backend check using `actions.intent.TRANSACTION_REQUIREMENTS_CHECK` to confirm the user has payments set up for their Google Assistant.\n\n- Be prepared to respond to the same issues with voice as with other mobile or web experiences. For example, offer a similar item when you're out of a certain size or color, or invite users to sign up to be notified when the item is back in stock.\n\n- Note that the order summary is built with the data you pass via the API. The \"Pay with Google\" label helps users understand that Google facilitated the payment.\n\n- When requesting info from your users, like their address info, first let them know why you are making the request and how it will benefit them.\n\n- Google will present the purchase authorization method (either no auth required, password, or fingerprint) based on the user's settings. Sometimes our risk assessment will kick off an additional auth step like confirming CVV for a card.\n\n- After the payment is complete, be sure to send a receipt and an order confirmation. It's important that users understand that you are the merchant of record, and will follow up with all details about the order, not Google.\n\n- By default transactions can be performed on either a surface with a screen (such as an Android phone) or a voice-only surface (such as a Google Home).\n\n - To best support voice-only transactions, take extra care to design a [good conversational experience](/assistant/actions/design) that walks users through the full transaction experience.\n\n - Note that some transactions intents may require a screen. Most of these (e.g. adding a new delivery address, fixing payment issues, account linking) will be handed off to the phone automatically. If there are any additions to the conversation that are best displayed on a screen (e.g. presenting rich responses for card building, displaying a merchant ToS or privacy policy), you should check if the current surface supports the `SCREEN_OUTPUT` or `WEB_BROWSER` capabilities, and [transfer to a new surface](/assistant/df-asdk/surface-capabilities#multi-surface_conversations) if not.\n\n - If you would rather not support voice-only transactions with your Action, you can set your Actions project to require a screen by navigating to **Deploy \\\u003e Surface capabilities** in the [Actions Console](https://console.actions.google.com) and setting **Do your Actions require a screen output** to **Yes**."]]