Skip to content
Physical transactions sample (using Dialogflow) in Node.js
Branch: master
Clone or download
Latest commit 179e7bd Dec 14, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
agent Update sample with new Transactions API Dec 13, 2019
functions Update sample with new Transactions API Dec 13, 2019
.gitignore Firebase SDK for Cloud Functions Beta to v1.0 Migration. Apr 6, 2018 Update Jul 20, 2017
LICENSE Initial checkin. May 16, 2017 Merge "Update sample with new Transactions API" Dec 13, 2019 Update sample with new Transactions API Dec 13, 2019

Actions on Google: Transactions Sample

This sample demonstrates Actions on Google features for use on Google Assistant including physical transactions -- using the Node.js client library and deployed on Cloud Functions for Firebase.

This sample shows everything you need to facilitate transactions, including:

  • Check for transaction requirements
  • Get the delivery address
  • Confirm the transaction
  • Examples of Google Pay and merchant-managed payment options
  • Asynchronously update order status at any time (via order-update.js)

Setup Instructions


  1. Node.js and NPM
    • We recommend installing using NVM
  2. Install the Firebase CLI
    • We recommend using version 6.5.0, npm install -g firebase-tools@6.5.0
    • Run firebase login with your Google account


Actions Console

  1. From the Actions on Google Console, New project (this will become your Project ID) > Create Project > under More options > Conversational
  2. From the top menu under Deploy > Directory Information (left nav), where all of the information is required to run transactions (sandbox or otherwise) unless specifically noted as optional.
    • Privacy Policy link: for testing purposes can be
    • Terms of Service link: for testing purposes can be
    • Additional information >
      • Select a Category
      • Do your Actions use the Transactions API to perform transactions of physical goods? > Yes > Save.
  3. From the top menu under Develop > Actions (left nav) > Add your first action > BUILD (this will bring you to the Dialogflow console) > Select language and time zone > CREATE.
  4. In the Dialogflow console, go to Settings ⚙ > Export and Import > Restore from zip using the in this sample's directory.

Firebase Deployment

  1. On your local machine, in the functions directory, run npm install
  2. Run firebase deploy --project {PROJECT_ID} to deploy the function
    • To find your Project ID: In Dialogflow console under Settings ⚙ > General tab > Project ID.

Dialogflow Console

  1. Return to the Dialogflow Console > select Fulfillment > Enable Webhook > Set URL to the Function URL that was returned after the deploy command > SAVE.
    Function URL (dialogflowFirebaseFulfillment): https://${REGION}-${PROJECT_ID}
  2. From the left navigation menu, click Integrations > Integration Settings under Google Assistant > Enable Auto-preview changes > Test to open the Actions on Google simulator then say or type Talk to my test app.

Running this Sample

  • (Recommended) You can test your Action on any Google Assistant-enabled device on which the Assistant is signed into the same account used to create this project. Just say or type, “OK Google, talk to my test app”.
  • You can also use the Actions on Google Console simulator to test most features and preview on-device behavior.

Order Updates (order-update.js)

Order Updates Configuration

  1. In the Google Cloud Platform console, select your Project ID from the dropdown > Menu ☰ > APIs & Services > Library
  2. Select Actions API > Enable
  3. Under Menu ☰ > APIs & Services > Credentials > Create Credentials > Service Account Key.
  4. From the dropdown, select New Service Account
    • name: service-account
    • role: Project/Owner
    • key type: JSON > Create
    • Your private JSON file will be downloaded to your local machine
  5. In order-update.js:
    • Replace ./path/to/key.json placeholder with the service-account.json path
    • Replace <UNIQUE_ORDER_ID> placeholder with the ID of the order you wish to update (merchantOrderId) -- your order value will be shown in the confirmation response
  6. In terminal, in the functions/, run the script to send an order update: node order-update.js.
    • Status: 200 OK will be logged to the console upon a successful order update

References & Issues

Make Contributions

Please read and follow the steps in the




Your use of this sample is subject to, and by using or downloading the sample files you agree to comply with, the Google APIs Terms of Service.

You can’t perform that action at this time.