├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── agent.zip ├── dialogflow-agent ├── agent.json ├── entities │ ├── ordinal-choice.json │ ├── ordinal-choice_entries_en.json │ ├── room.json │ ├── room_entries_en.json │ ├── session-type.json │ ├── session-type_entries_en.json │ ├── sessions.json │ ├── sessions_entries_en.json │ ├── topics.json │ └── topics_entries_en.json ├── intents │ ├── after-party.json │ ├── after-party_usersays_en.json │ ├── announcements.json │ ├── announcements_usersays_en.json │ ├── app-review.json │ ├── app-review_usersays_en.json │ ├── ask-attending-no.json │ ├── ask-attending-no_usersays_en.json │ ├── ask-attending-yes.json │ ├── ask-attending-yes_usersays_en.json │ ├── browse-sessions-next.json │ ├── browse-sessions-next_usersays_en.json │ ├── browse-sessions-repeat.json │ ├── browse-sessions-repeat_usersays_en.json │ ├── browse-sessions.json │ ├── browse-sessions_usersays_en.json │ ├── browse-topics-OPTION.json │ ├── browse-topics-next.json │ ├── browse-topics-next_usersays_en.json │ ├── browse-topics-repeat.json │ ├── browse-topics-repeat_usersays_en.json │ ├── browse-topics.json │ ├── browse-topics_usersays_en.json │ ├── cancel.json │ ├── cancel_usersays_en.json │ ├── check-type.json │ ├── check-type_usersays_en.json │ ├── codelabs.json │ ├── codelabs_usersays_en.json │ ├── concert.json │ ├── concert_usersays_en.json │ ├── date.json │ ├── date_usersays_en.json │ ├── directions.json │ ├── directions_usersays_en.json │ ├── easter-eggs.json │ ├── easter-eggs_usersays_en.json │ ├── fallback.json │ ├── food.json │ ├── food_usersays_en.json │ ├── keynote.json │ ├── keynote_usersays_en.json │ ├── lost-and-found.json │ ├── lost-and-found_usersays_en.json │ ├── menu.json │ ├── menu_usersays_en.json │ ├── next-session-directions-sign-in.json │ ├── next-session-directions.json │ ├── next-session-directions_usersays_en.json │ ├── no-input.json │ ├── popular-justice-songs.json │ ├── popular-justice-songs_usersays_en.json │ ├── popular-phantogram-songs.json │ ├── popular-phantogram-songs_usersays_en.json │ ├── relax-menu.json │ ├── relax-menu_usersays_en.json │ ├── scavenger-hunt.json │ ├── scavenger-hunt_usersays_en.json │ ├── schedule-sign-in.json │ ├── show-schedule-browse-topics-no.json │ ├── show-schedule-browse-topics-no_usersays_en.json │ ├── show-schedule-browse-topics-yes.json │ ├── show-schedule-browse-topics-yes_usersays_en.json │ ├── show-schedule-next.json │ ├── show-schedule-next_usersays_en.json │ ├── show-schedule-repeat.json │ ├── show-schedule-repeat_usersays_en.json │ ├── show-schedule-session-directions.json │ ├── show-schedule-session-directions_usersays_en.json │ ├── show-schedule-session-repeat.json │ ├── show-schedule-session-repeat_usersays_en.json │ ├── show-schedule-session.json │ ├── show-schedule-session_usersays_en.json │ ├── show-schedule.json │ ├── show-schedule_usersays_en.json │ ├── show-session-directions.json │ ├── show-session-directions_usersays_en.json │ ├── show-session-repeat.json │ ├── show-session-repeat_usersays_en.json │ ├── show-session.json │ ├── show-session_usersays_en.json │ ├── swag.json │ ├── swag_usersays_en.json │ ├── things-to-do-menu.json │ ├── things-to-do-menu_usersays_en.json │ ├── unrecognized-deep-link.json │ ├── unrecognized-deep-link_usersays_en.json │ ├── watch-remotely.json │ ├── watch-remotely_usersays_en.json │ ├── welcome.json │ ├── welcome_usersays_en.json │ ├── what-to-wear.json │ └── what-to-wear_usersays_en.json └── package.json ├── docs ├── DATA.md └── SETUP.md ├── firebase.json └── functions ├── .eslintrc.json ├── app.js ├── auth └── user.js ├── config └── default.json ├── event ├── conference.js └── map.js ├── index.js ├── package.json ├── prompts ├── common │ ├── concert.js │ ├── during.js │ ├── post.js │ ├── pre.js │ └── utils.js ├── menu │ ├── common.js │ └── utils.js ├── schedule │ ├── common.js │ └── utils.js └── static │ ├── during.js │ ├── post.js │ ├── pre.js │ ├── utils.js │ └── utilsDuring.js └── timeUtils.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | .firebaserc 4 | *.DS_store 5 | *.log 6 | functions/config/dev.json 7 | functions/config/serviceKey.json 8 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to become a contributor and submit your own code 2 | 3 | ## Contributor License Agreements 4 | 5 | We'd love to accept your sample apps and patches! Before we can take them, we 6 | have to jump a couple of legal hurdles. 7 | 8 | Please fill out either the individual or corporate Contributor License Agreement 9 | (CLA). 10 | 11 | * If you are an individual writing original source code and you're sure you 12 | own the intellectual property, then you'll need to sign an [individual CLA] 13 | (https://developers.google.com/open-source/cla/individual). 14 | * If you work for a company that wants to allow you to contribute your work, 15 | then you'll need to sign a [corporate CLA] 16 | (https://developers.google.com/open-source/cla/corporate). 17 | 18 | Follow either of the two links above to access the appropriate CLA and 19 | instructions for how to sign and return it. Once we receive it, we'll be able to 20 | accept your pull requests. 21 | 22 | ## Contributing A Patch 23 | 24 | 1. Submit an issue describing your proposed change to the repo in question. 25 | 1. The repo owner will respond to your issue promptly. 26 | 1. If your proposed change is accepted, and you haven't already done so, sign a 27 | Contributor License Agreement (see details above). 28 | 1. Fork the desired repo, develop and test your code changes. 29 | 1. Ensure that your code adheres to the existing style in the sample to which 30 | you are contributing. Refer to the 31 | [Google Cloud Platform Samples Style Guide] 32 | (https://github.com/GoogleCloudPlatform/Template/wiki/style.html) for the 33 | recommended coding standards for this organization. 34 | 1. Ensure that your code has an appropriate set of unit tests which all pass. 35 | 1. Submit a pull request. 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Google I/O '18 Action for the Google Assistant 2 | 3 | *:warning: Warning: Conversational Actions will be deprecated on June 13, 2023. For more information, see [Conversational Actions Sunset](https://goo.gle/ca-sunset).* 4 | 5 | 6 | Google I/O is a developer conference held each year with three days of deep 7 | technical content featuring technical sessions and hundreds of demonstrations 8 | from developers showcasing their technologies. 9 | 10 | This project is the Action for the Google Assistant at Google I/O. 11 | 12 | :warning: This code sample was built using Dialogflow. We now recommend using [Actions Builder or the Actions SDK](https://developers.google.com/assistant/conversational/overview) to develop, test, and deploy Conversational Actions. 13 | 14 | ## Features 15 | This Action is split primarily into 3 categories of features: before, during, and after I/O. 16 | 17 | ### Before I/O & During I/O 18 | * Browse conference agenda by 19 | * Sessions 20 | * Office hours 21 | * Ask general questions 22 | * Keynotes 23 | * What to wear 24 | * App reviews 25 | * Codelabs 26 | * etc 27 | * View your starred and reserved sessions (from mobile or web apps) 28 | 29 | ### After I/O 30 | * Browse session recordings by 31 | * Sessions 32 | * Office hours 33 | * Ask general questions 34 | * Keynotes 35 | * What to wear 36 | * App reviews 37 | * Codelabs 38 | * etc 39 | 40 | ## Instructions 41 | * **[Setup instructions](docs/SETUP.md)** on how to deploy the Action for testing. 42 | * **[Data format reference](docs/DATA.md)** for the Firestore data structure used by this Action. 43 | 44 | ## References & Issues 45 | + Questions? Go to [StackOverflow](https://stackoverflow.com/questions/tagged/actions-on-google), [Assistant Developer Community on Reddit](https://www.reddit.com/r/GoogleAssistantDev/) or [Support](https://developers.google.com/assistant/support). 46 | + For bugs, please report an issue on Github. 47 | + Actions on Google [Documentation](https://developers.google.com/assistant) 48 | + Actions on Google [Codelabs](https://codelabs.developers.google.com/?cat=Assistant). 49 | + [Webhook Boilerplate Template](https://github.com/actions-on-google/dialogflow-webhook-boilerplate-nodejs) for Actions on Google. 50 | 51 | ## Make Contributions 52 | Please read and follow the steps in the [CONTRIBUTING.md](CONTRIBUTING.md). 53 | 54 | ## License 55 | See [LICENSE](LICENSE). 56 | 57 | ## Terms 58 | 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](https://developers.google.com/terms/). 59 | -------------------------------------------------------------------------------- /agent.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/actions-on-google/dialogflow-iosched-nodejs/83bd572679270496edd788b160f416bc7766da3f/agent.zip -------------------------------------------------------------------------------- /dialogflow-agent/agent.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "", 3 | "language": "en", 4 | "disableInteractionLogs": false, 5 | "googleAssistant": { 6 | "googleAssistantCompatible": true, 7 | "welcomeIntentSignInRequired": false, 8 | "startIntents": [ 9 | { 10 | "intentId": "bd843816-1a6b-49ae-a26c-5eacfae9f3de", 11 | "signInRequired": false 12 | }, 13 | { 14 | "intentId": "d5377046-81dc-454f-ad29-ccfb8f8ee943", 15 | "signInRequired": false 16 | }, 17 | { 18 | "intentId": "08b90989-d636-49af-ab49-1056b524c8d7", 19 | "signInRequired": false 20 | }, 21 | { 22 | "intentId": "6e748fb3-5365-45a9-85eb-35314e0fc401", 23 | "signInRequired": false 24 | } 25 | ], 26 | "systemIntents": [], 27 | "endIntentIds": [ 28 | "d23156bc-191a-4b98-b34a-8948d98177cf", 29 | "dd2a4b12-f307-4abc-bd3b-dd7602e53ffa" 30 | ], 31 | "oAuthLinking": { 32 | "required": false, 33 | "grantType": "AUTH_CODE_GRANT" 34 | }, 35 | "voiceType": "MALE_1", 36 | "capabilities": [], 37 | "protocolVersion": "V2", 38 | "autoPreviewEnabled": true, 39 | "isDeviceAgent": false 40 | }, 41 | "defaultTimezone": "America/Denver", 42 | "webhook": { 43 | "url": "https://example.com", 44 | "headers": { 45 | "": "" 46 | }, 47 | "available": true, 48 | "useForDomains": false, 49 | "cloudFunctionsEnabled": false, 50 | "cloudFunctionsInitialized": false 51 | }, 52 | "isPrivate": true, 53 | "customClassifierMode": "use.after", 54 | "mlMinConfidence": 0.3, 55 | "supportedLanguages": [], 56 | "onePlatformApiVersion": "v2beta1" 57 | } -------------------------------------------------------------------------------- /dialogflow-agent/entities/ordinal-choice.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "0b54817a-76f4-4448-bb65-bf35255ae13b", 3 | "name": "ordinal-choice", 4 | "isOverridable": true, 5 | "isEnum": false, 6 | "automatedExpansion": false 7 | } -------------------------------------------------------------------------------- /dialogflow-agent/entities/ordinal-choice_entries_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "value": "first", 4 | "synonyms": [ 5 | "first", 6 | "the first one", 7 | "number one" 8 | ] 9 | }, 10 | { 11 | "value": "second", 12 | "synonyms": [ 13 | "second", 14 | "the second one", 15 | "number 2" 16 | ] 17 | } 18 | ] -------------------------------------------------------------------------------- /dialogflow-agent/entities/room.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "31bd4422-2b4e-4bfc-bb37-f78ce5ce42b4", 3 | "name": "room", 4 | "isOverridable": true, 5 | "isEnum": false, 6 | "automatedExpansion": false 7 | } -------------------------------------------------------------------------------- /dialogflow-agent/entities/session-type.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "8f568e17-05cb-486c-abfb-29f58818eab9", 3 | "name": "session-type", 4 | "isOverridable": true, 5 | "isEnum": false, 6 | "automatedExpansion": false 7 | } -------------------------------------------------------------------------------- /dialogflow-agent/entities/session-type_entries_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "value": "Sessions", 4 | "synonyms": [ 5 | "Sessions", 6 | "session", 7 | "sessions", 8 | "Session" 9 | ] 10 | }, 11 | { 12 | "value": "Office Hours", 13 | "synonyms": [ 14 | "Office Hours", 15 | "office hours", 16 | "office hour", 17 | "Office hour", 18 | "Office hours" 19 | ] 20 | } 21 | ] -------------------------------------------------------------------------------- /dialogflow-agent/entities/sessions.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "d1181549-3449-402f-9957-396fa6da72b4", 3 | "name": "sessions", 4 | "isOverridable": true, 5 | "isEnum": false, 6 | "automatedExpansion": false 7 | } -------------------------------------------------------------------------------- /dialogflow-agent/entities/topics.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "b3858d22-d32e-4b72-ac2e-2e4602572a4a", 3 | "name": "topics", 4 | "isOverridable": true, 5 | "isEnum": false, 6 | "automatedExpansion": false 7 | } -------------------------------------------------------------------------------- /dialogflow-agent/entities/topics_entries_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "value": "Accessibility", 4 | "synonyms": [ 5 | "Accessibility", 6 | "a 11 y" 7 | ] 8 | }, 9 | { 10 | "value": "Ads", 11 | "synonyms": [ 12 | "Ads", 13 | "Advertisements" 14 | ] 15 | }, 16 | { 17 | "value": "Android \u0026 Play", 18 | "synonyms": [ 19 | "Android \u0026 Play", 20 | "android and play", 21 | "android", 22 | "play", 23 | "google play", 24 | "android apps" 25 | ] 26 | }, 27 | { 28 | "value": "AR \u0026 VR", 29 | "synonyms": [ 30 | "AR \u0026 VR", 31 | "AR and VR", 32 | "A R and V R", 33 | "AR", 34 | "A R", 35 | "VR", 36 | "V R", 37 | "augmented reality", 38 | "virtual reality" 39 | ] 40 | }, 41 | { 42 | "value": "Assistant", 43 | "synonyms": [ 44 | "Assistant", 45 | "Google Assistant" 46 | ] 47 | }, 48 | { 49 | "value": "Cloud", 50 | "synonyms": [ 51 | "Cloud", 52 | "Google Cloud" 53 | ] 54 | }, 55 | { 56 | "value": "Design", 57 | "synonyms": [ 58 | "Design" 59 | ] 60 | }, 61 | { 62 | "value": "Firebase", 63 | "synonyms": [ 64 | "Firebase" 65 | ] 66 | }, 67 | { 68 | "value": "Flutter", 69 | "synonyms": [ 70 | "Accessibility", 71 | "a 11 y" 72 | ] 73 | }, 74 | { 75 | "value": "Identity", 76 | "synonyms": [ 77 | "Identity", 78 | "Google Sign In", 79 | "O Auth" 80 | ] 81 | }, 82 | { 83 | "value": "IoT", 84 | "synonyms": [ 85 | "IoT", 86 | "Internet of things", 87 | "Android Things" 88 | ] 89 | }, 90 | { 91 | "value": "Location \u0026 Maps", 92 | "synonyms": [ 93 | "Location \u0026 Maps", 94 | "Location", 95 | "Maps", 96 | "Geo" 97 | ] 98 | }, 99 | { 100 | "value": "Machine Learning \u0026 AI", 101 | "synonyms": [ 102 | "Machine Learning \u0026 AI", 103 | "machine learning", 104 | "AI", 105 | "artificial intelligence", 106 | "tensorflow", 107 | "ML" 108 | ] 109 | }, 110 | { 111 | "value": "Nest", 112 | "synonyms": [ 113 | "Nest" 114 | ] 115 | }, 116 | { 117 | "value": "Open Source", 118 | "synonyms": [ 119 | "Open Source", 120 | "OSS" 121 | ] 122 | }, 123 | { 124 | "value": "Payments", 125 | "synonyms": [ 126 | "Payments", 127 | "G Pay" 128 | ] 129 | }, 130 | { 131 | "value": "Web", 132 | "synonyms": [ 133 | "Web", 134 | "Chrome" 135 | ] 136 | } 137 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/after-party.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "0d5ab049-831c-4b6c-82a3-a17d34d7275e", 3 | "name": "after-party", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1526334832, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/after-party_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "116155c7-fe5b-45bb-b5a3-98e5a43e3429", 4 | "data": [ 5 | { 6 | "text": "when\u0027s the after hours party?", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525392979 13 | }, 14 | { 15 | "id": "59994c48-4daf-4f71-aca1-8841c417eea4", 16 | "data": [ 17 | { 18 | "text": "when\u0027s the after party?", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525392979 25 | }, 26 | { 27 | "id": "8680dcf1-d78b-43c5-a6d4-e1b086d446fc", 28 | "data": [ 29 | { 30 | "text": "whens the after hours party?", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525392979 37 | }, 38 | { 39 | "id": "6e0c984c-622e-407b-8305-b536ef5fbc6f", 40 | "data": [ 41 | { 42 | "text": "whens the after party?", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1525392979 49 | }, 50 | { 51 | "id": "1253aec3-5e3d-4b4d-a098-a3cac5a22c1a", 52 | "data": [ 53 | { 54 | "text": "after hour party", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1525391942 61 | }, 62 | { 63 | "id": "259aa8bb-4bf1-42cd-8617-272ab1c317f7", 64 | "data": [ 65 | { 66 | "text": "after party", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 1525391942 73 | }, 74 | { 75 | "id": "03bcbf8d-ab7e-4433-a31a-17114be59c7e", 76 | "data": [ 77 | { 78 | "text": "after hours", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 1525391942 85 | }, 86 | { 87 | "id": "37d5819a-9604-4c02-acd3-9d56fb1d4803", 88 | "data": [ 89 | { 90 | "text": "Tell me about the party", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1525391942 97 | }, 98 | { 99 | "id": "412fdd40-7620-4691-ac8b-78b67c6b4706", 100 | "data": [ 101 | { 102 | "text": "What happens after hours?", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1525391942 109 | }, 110 | { 111 | "id": "ea43992d-8124-4494-810c-e357294fb51c", 112 | "data": [ 113 | { 114 | "text": "Tell me about the concert", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 1525391942 121 | }, 122 | { 123 | "id": "5cbc27cd-50ab-40f6-b3a8-6a9540c6c85d", 124 | "data": [ 125 | { 126 | "text": "Tell me about the after party", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 1, 132 | "updated": 1525391942 133 | }, 134 | { 135 | "id": "14bd513a-d545-4e9b-9c38-d6ad2a954059", 136 | "data": [ 137 | { 138 | "text": "What is happen for the after party?", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 1, 144 | "updated": 1525391942 145 | }, 146 | { 147 | "id": "e6920de7-e291-4578-82ac-b4f1550b2adc", 148 | "data": [ 149 | { 150 | "text": "What happen in the evening?", 151 | "userDefined": false 152 | } 153 | ], 154 | "isTemplate": false, 155 | "count": 1, 156 | "updated": 1523593782 157 | } 158 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/announcements.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "bd843816-1a6b-49ae-a26c-5eacfae9f3de", 3 | "name": "announcements", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1525453860, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/announcements_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "8000a77e-bc35-4280-87cb-e43ce65f811f", 4 | "data": [ 5 | { 6 | "text": "latest news", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525453860 13 | }, 14 | { 15 | "id": "42491299-a8da-403e-ba68-8d2e2dcebdb4", 16 | "data": [ 17 | { 18 | "text": "latest announcements", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525453860 25 | }, 26 | { 27 | "id": "a655f5ff-a739-42ff-b3ae-b30d1c4e5df9", 28 | "data": [ 29 | { 30 | "text": "any announcements ", 31 | "userDefined": false 32 | }, 33 | { 34 | "text": "this year", 35 | "meta": "@sys.ignore", 36 | "userDefined": false 37 | } 38 | ], 39 | "isTemplate": false, 40 | "count": 0, 41 | "updated": 1525453860 42 | }, 43 | { 44 | "id": "4ef717be-2c16-4de5-94fa-b76ec72b5aa1", 45 | "data": [ 46 | { 47 | "text": "any news", 48 | "userDefined": false 49 | } 50 | ], 51 | "isTemplate": false, 52 | "count": 0, 53 | "updated": 1525453860 54 | }, 55 | { 56 | "id": "c6baf71f-8292-4499-a817-c1c8d72095e8", 57 | "data": [ 58 | { 59 | "text": "any announcements", 60 | "userDefined": false 61 | } 62 | ], 63 | "isTemplate": false, 64 | "count": 0, 65 | "updated": 1525453860 66 | }, 67 | { 68 | "id": "4a90d675-5733-49f3-b203-8eb1d46fa47e", 69 | "data": [ 70 | { 71 | "text": "What will be announced at IO", 72 | "userDefined": false 73 | } 74 | ], 75 | "isTemplate": false, 76 | "count": 0, 77 | "updated": 1525453860 78 | }, 79 | { 80 | "id": "2ae50f73-0aea-489b-b1c1-a9aee00adb4c", 81 | "data": [ 82 | { 83 | "text": "What will be announced at Google I/", 84 | "userDefined": false 85 | }, 86 | { 87 | "text": "O", 88 | "meta": "@sys.ignore", 89 | "userDefined": false 90 | } 91 | ], 92 | "isTemplate": false, 93 | "count": 0, 94 | "updated": 1525453860 95 | }, 96 | { 97 | "id": "47f89670-0099-4f0c-bc62-7f840e8e9bd7", 98 | "data": [ 99 | { 100 | "text": "announcements", 101 | "userDefined": false 102 | } 103 | ], 104 | "isTemplate": false, 105 | "count": 1, 106 | "updated": 1525453860 107 | }, 108 | { 109 | "id": "bf29549f-5369-4713-9cf8-f18f3915b503", 110 | "data": [ 111 | { 112 | "text": "Tell me the biggest news", 113 | "userDefined": false 114 | } 115 | ], 116 | "isTemplate": false, 117 | "count": 1, 118 | "updated": 1525453860 119 | }, 120 | { 121 | "id": "484dd9fe-f42e-4b23-9cca-9baafa38d72b", 122 | "data": [ 123 | { 124 | "text": "I want to learn about the announcements for ", 125 | "userDefined": false 126 | }, 127 | { 128 | "text": "this year", 129 | "meta": "@sys.ignore", 130 | "userDefined": false 131 | } 132 | ], 133 | "isTemplate": false, 134 | "count": 1, 135 | "updated": 1525453860 136 | }, 137 | { 138 | "id": "5537171e-f715-489e-a4e2-49ec4206a1d1", 139 | "data": [ 140 | { 141 | "text": "What is the biggest release?", 142 | "userDefined": false 143 | } 144 | ], 145 | "isTemplate": false, 146 | "count": 1, 147 | "updated": 1525453860 148 | }, 149 | { 150 | "id": "13a936c8-85b5-4181-85f5-6638a3fe59cb", 151 | "data": [ 152 | { 153 | "text": "What is the new announcement?", 154 | "userDefined": false 155 | } 156 | ], 157 | "isTemplate": false, 158 | "count": 1, 159 | "updated": 1525453860 160 | }, 161 | { 162 | "id": "49d23031-9732-4aba-ba50-98b5f4086a1f", 163 | "data": [ 164 | { 165 | "text": "What is being announced?", 166 | "userDefined": false 167 | } 168 | ], 169 | "isTemplate": false, 170 | "count": 1, 171 | "updated": 1525453860 172 | } 173 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/app-review.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "4de5b3fa-0c20-45b3-8fff-9a2d61c72012", 3 | "name": "app-review", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1526334842, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/app-review_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "71bb12de-cb33-4843-9299-e2edaeb38df9", 4 | "data": [ 5 | { 6 | "text": "meet the approval team", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1523580803 13 | }, 14 | { 15 | "id": "08d33f8b-049d-4ff4-adef-f09f88dd5840", 16 | "data": [ 17 | { 18 | "text": "Work with approval team", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 1, 24 | "updated": 1523580803 25 | }, 26 | { 27 | "id": "a59a179d-336d-4341-bfcf-b271c2c4b2ca", 28 | "data": [ 29 | { 30 | "text": "Find out why my app was declined", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1523580803 37 | }, 38 | { 39 | "id": "c86b0521-bd97-445e-b0d8-21e979ea6501", 40 | "data": [ 41 | { 42 | "text": "Where can I get help to get my app approved?", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1523580803 49 | }, 50 | { 51 | "id": "f4f7205e-ee01-4596-a35b-4864c1381ab2", 52 | "data": [ 53 | { 54 | "text": "Review my app", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1523580803 61 | }, 62 | { 63 | "id": "ef4bb125-e0d8-4126-93af-1cafad51a306", 64 | "data": [ 65 | { 66 | "text": "I want to get my app reviewed", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1523580803 73 | } 74 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/ask-attending-no.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "e2093484-4c7c-457f-9a73-6331df415207", 3 | "parentId": "6f59ad71-6ea2-4112-9cd9-57e7a0285edd", 4 | "rootParentId": "6f59ad71-6ea2-4112-9cd9-57e7a0285edd", 5 | "name": "ask-attending-no", 6 | "auto": true, 7 | "contexts": [ 8 | "welcome-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "welcome.welcome-custom", 14 | "affectedContexts": [ 15 | { 16 | "name": "welcome-followup", 17 | "parameters": {}, 18 | "lifespan": 0 19 | } 20 | ], 21 | "parameters": [], 22 | "messages": [ 23 | { 24 | "type": 0, 25 | "lang": "en", 26 | "speech": [] 27 | } 28 | ], 29 | "defaultResponsePlatforms": {}, 30 | "speech": [] 31 | } 32 | ], 33 | "priority": 500000, 34 | "webhookUsed": true, 35 | "webhookForSlotFilling": false, 36 | "lastUpdate": 1525392634, 37 | "fallbackIntent": false, 38 | "events": [] 39 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/ask-attending-no_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "f6a53efd-6709-4cd6-9ad5-600e9ef99875", 4 | "data": [ 5 | { 6 | "text": "nope", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525372060 13 | }, 14 | { 15 | "id": "8688f1b8-7487-4660-867b-fd690764d46f", 16 | "data": [ 17 | { 18 | "text": "nah", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525372060 25 | }, 26 | { 27 | "id": "014cdcc3-ad36-41d0-ad31-ffbe2e333524", 28 | "data": [ 29 | { 30 | "text": "no", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525372060 37 | } 38 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/ask-attending-yes.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "a3f67dfd-d51f-40d3-8dcd-f92a1b00f394", 3 | "parentId": "6f59ad71-6ea2-4112-9cd9-57e7a0285edd", 4 | "rootParentId": "6f59ad71-6ea2-4112-9cd9-57e7a0285edd", 5 | "name": "ask-attending-yes", 6 | "auto": true, 7 | "contexts": [ 8 | "welcome-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "welcome.welcome-custom", 14 | "affectedContexts": [ 15 | { 16 | "name": "welcome-followup", 17 | "parameters": {}, 18 | "lifespan": 0 19 | } 20 | ], 21 | "parameters": [], 22 | "messages": [ 23 | { 24 | "type": 0, 25 | "lang": "en", 26 | "speech": [] 27 | } 28 | ], 29 | "defaultResponsePlatforms": {}, 30 | "speech": [] 31 | } 32 | ], 33 | "priority": 500000, 34 | "webhookUsed": true, 35 | "webhookForSlotFilling": false, 36 | "lastUpdate": 1525841054, 37 | "fallbackIntent": false, 38 | "events": [] 39 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/ask-attending-yes_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "c2813892-5432-46d8-9f74-f65443921366", 4 | "data": [ 5 | { 6 | "text": "of course", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525841054 13 | }, 14 | { 15 | "id": "fed05a6e-6404-4f41-9b9e-c0fabfcebad6", 16 | "data": [ 17 | { 18 | "text": "thats correct", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525841054 25 | }, 26 | { 27 | "id": "37975594-5833-45bb-b246-0aaa2fd85e54", 28 | "data": [ 29 | { 30 | "text": "absolutely", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525841054 37 | }, 38 | { 39 | "id": "c08e1a49-22d6-4931-a8f0-c5ff7aa7b721", 40 | "data": [ 41 | { 42 | "text": "yeah", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1525841054 49 | }, 50 | { 51 | "id": "7a2b31f1-4199-40bf-8700-7c5bf8227c0f", 52 | "data": [ 53 | { 54 | "text": "yup", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1525841054 61 | }, 62 | { 63 | "id": "6bdeaa40-0527-4959-842d-98f23a6416d3", 64 | "data": [ 65 | { 66 | "text": "yep", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 1525841054 73 | }, 74 | { 75 | "id": "1b58d638-726c-43c7-9c64-81e8b5bf1d37", 76 | "data": [ 77 | { 78 | "text": "yes", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 1525372028 85 | } 86 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-sessions-next.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "d7883fc9-3971-495a-a577-16a094715f5a", 3 | "parentId": "52028621-a35e-400a-ae17-1d8068b50031", 4 | "rootParentId": "52028621-a35e-400a-ae17-1d8068b50031", 5 | "name": "browse-sessions-next", 6 | "auto": true, 7 | "contexts": [ 8 | "browse-sessions-followup", 9 | "type-checked" 10 | ], 11 | "responses": [ 12 | { 13 | "resetContexts": false, 14 | "action": "browse-sessions.browse-sessions-next", 15 | "affectedContexts": [ 16 | { 17 | "name": "browse-sessions-followup", 18 | "parameters": {}, 19 | "lifespan": 2 20 | }, 21 | { 22 | "name": "type-checked", 23 | "parameters": {}, 24 | "lifespan": 2 25 | } 26 | ], 27 | "parameters": [], 28 | "messages": [ 29 | { 30 | "type": 0, 31 | "lang": "en", 32 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 33 | } 34 | ], 35 | "defaultResponsePlatforms": {}, 36 | "speech": [] 37 | } 38 | ], 39 | "priority": 500000, 40 | "webhookUsed": true, 41 | "webhookForSlotFilling": false, 42 | "lastUpdate": 1524799187, 43 | "fallbackIntent": false, 44 | "events": [] 45 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-sessions-next_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "9dd60605-3ef3-40ed-b6be-d656fc86d23e", 4 | "data": [ 5 | { 6 | "text": "neither", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1523829828 13 | }, 14 | { 15 | "id": "1a86a0bd-0a6f-49b8-bd40-9919ab28b606", 16 | "data": [ 17 | { 18 | "text": "what else", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 1, 24 | "updated": 1523822737 25 | }, 26 | { 27 | "id": "afbcc423-03bd-46d9-8c11-c3ffbc828086", 28 | "data": [ 29 | { 30 | "text": "show me the following results", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1523822737 37 | }, 38 | { 39 | "id": "7d0c5d94-302b-44a5-b848-cbe18ecc541d", 40 | "data": [ 41 | { 42 | "text": "next page", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1523822737 49 | }, 50 | { 51 | "id": "dcc4c316-977b-4a59-9601-4d39a4de0ce4", 52 | "data": [ 53 | { 54 | "text": "go to the next page", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1523822737 61 | }, 62 | { 63 | "id": "e70f105f-6b0d-4af2-94cd-41ac10b1646b", 64 | "data": [ 65 | { 66 | "text": "switch to the next", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1523822737 73 | }, 74 | { 75 | "id": "12251b99-559e-416f-845e-6f620bed2f1b", 76 | "data": [ 77 | { 78 | "text": "show me the next page", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1523822737 85 | }, 86 | { 87 | "id": "31dfcfde-4ca3-480f-8db7-53024b9008b0", 88 | "data": [ 89 | { 90 | "text": "read the next results", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1523822737 97 | }, 98 | { 99 | "id": "20ec7f36-f4c9-4855-9932-2dbd951ca955", 100 | "data": [ 101 | { 102 | "text": "following result", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1523822737 109 | }, 110 | { 111 | "id": "82307ce7-35fe-457c-ab24-f1f2d39281c0", 112 | "data": [ 113 | { 114 | "text": "go forward", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 1523822737 121 | }, 122 | { 123 | "id": "bc08af2e-cf23-4328-80fe-9045fe4b27ed", 124 | "data": [ 125 | { 126 | "text": "next", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 1, 132 | "updated": 1523822737 133 | }, 134 | { 135 | "id": "dc0d5c16-732a-4cf2-9635-251ebee1341b", 136 | "data": [ 137 | { 138 | "text": "show me next", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 1, 144 | "updated": 0 145 | }, 146 | { 147 | "id": "99ebc8bd-b292-4b9c-8554-81d2dba8d0f5", 148 | "data": [ 149 | { 150 | "text": "none", 151 | "userDefined": false 152 | } 153 | ], 154 | "isTemplate": false, 155 | "count": 0, 156 | "updated": 1524521986 157 | }, 158 | { 159 | "id": "c16b62a8-a0b1-4e8a-be54-0520d78c6a2e", 160 | "data": [ 161 | { 162 | "text": "What else?", 163 | "userDefined": false 164 | } 165 | ], 166 | "isTemplate": false, 167 | "count": 0, 168 | "updated": 1524521986 169 | }, 170 | { 171 | "id": "ca3cf7d1-826f-4c05-a1d6-5c87334dcccb", 172 | "data": [ 173 | { 174 | "text": "none of those", 175 | "userDefined": false 176 | } 177 | ], 178 | "isTemplate": false, 179 | "count": 0, 180 | "updated": 1524521986 181 | } 182 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-sessions-repeat.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "ffc9a00f-3df6-4abd-95c0-74a790e69326", 3 | "parentId": "52028621-a35e-400a-ae17-1d8068b50031", 4 | "rootParentId": "52028621-a35e-400a-ae17-1d8068b50031", 5 | "name": "browse-sessions-repeat", 6 | "auto": true, 7 | "contexts": [ 8 | "browse-sessions-followup", 9 | "type-checked" 10 | ], 11 | "responses": [ 12 | { 13 | "resetContexts": false, 14 | "action": "browse-sessions.browse-sessions-repeat", 15 | "affectedContexts": [ 16 | { 17 | "name": "browse-sessions-followup", 18 | "parameters": {}, 19 | "lifespan": 3 20 | }, 21 | { 22 | "name": "type-checked", 23 | "parameters": {}, 24 | "lifespan": 3 25 | } 26 | ], 27 | "parameters": [], 28 | "messages": [ 29 | { 30 | "type": 0, 31 | "lang": "en", 32 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 33 | } 34 | ], 35 | "defaultResponsePlatforms": {}, 36 | "speech": [] 37 | } 38 | ], 39 | "priority": 500000, 40 | "webhookUsed": true, 41 | "webhookForSlotFilling": false, 42 | "lastUpdate": 1524799205, 43 | "fallbackIntent": false, 44 | "events": [] 45 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-sessions-repeat_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "0b800102-e3e7-4553-9769-e0d0e723d3ad", 4 | "data": [ 5 | { 6 | "text": "repeat", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 3, 12 | "updated": 1524622939 13 | }, 14 | { 15 | "id": "3f739614-815a-4882-9442-e57d509e7f2c", 16 | "data": [ 17 | { 18 | "text": "repeat it", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 1, 24 | "updated": 1524622939 25 | }, 26 | { 27 | "id": "6e6ca478-f632-4144-a496-01b3f1458509", 28 | "data": [ 29 | { 30 | "text": "could you repeat that", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1524622939 37 | }, 38 | { 39 | "id": "e49d927e-f6a8-42f5-909b-c1696df61b46", 40 | "data": [ 41 | { 42 | "text": "do it again", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1524622939 49 | }, 50 | { 51 | "id": "876437a3-4552-4f1d-ae92-27a5cae6fadd", 52 | "data": [ 53 | { 54 | "text": "repeat these results", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1524622939 61 | }, 62 | { 63 | "id": "ce617432-bd20-40f7-adce-5d2f6758a478", 64 | "data": [ 65 | { 66 | "text": "say the same again", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1524622939 73 | }, 74 | { 75 | "id": "e8c5f024-8018-47f2-8a2e-207bc7fc7b3a", 76 | "data": [ 77 | { 78 | "text": "repeat what you\u0027ve just said", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1524622939 85 | }, 86 | { 87 | "id": "fdb81833-7504-4fb2-8507-c4ee3a412861", 88 | "data": [ 89 | { 90 | "text": "come again", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1524622939 97 | }, 98 | { 99 | "id": "da2724f6-978c-4189-982b-9227e914f1ea", 100 | "data": [ 101 | { 102 | "text": "say it again", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1524622939 109 | }, 110 | { 111 | "id": "3fc979d2-74d8-4eb9-b38c-cb3989877623", 112 | "data": [ 113 | { 114 | "text": "please repeat that", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 1524622939 121 | } 122 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-sessions.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "52028621-a35e-400a-ae17-1d8068b50031", 3 | "name": "browse-sessions", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [ 10 | { 11 | "name": "browse-topics-followup", 12 | "parameters": {}, 13 | "lifespan": 0 14 | }, 15 | { 16 | "name": "show-schedule-followup", 17 | "parameters": {}, 18 | "lifespan": 0 19 | }, 20 | { 21 | "name": "browse-sessions-followup", 22 | "parameters": {}, 23 | "lifespan": 3 24 | } 25 | ], 26 | "parameters": [ 27 | { 28 | "id": "774b0840-ca79-4410-8943-41d769b66702", 29 | "required": true, 30 | "dataType": "@topics", 31 | "name": "topic", 32 | "value": "$topic", 33 | "prompts": [ 34 | { 35 | "lang": "en", 36 | "value": "Which topic do you want to hear about?" 37 | } 38 | ], 39 | "isList": false 40 | } 41 | ], 42 | "messages": [ 43 | { 44 | "type": 0, 45 | "lang": "en", 46 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 47 | } 48 | ], 49 | "defaultResponsePlatforms": {}, 50 | "speech": [] 51 | } 52 | ], 53 | "priority": 500000, 54 | "webhookUsed": true, 55 | "webhookForSlotFilling": false, 56 | "lastUpdate": 1525120201, 57 | "fallbackIntent": false, 58 | "events": [] 59 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-sessions_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "f47f4dc7-dfbc-4494-a07e-31d7eafa6c15", 4 | "data": [ 5 | { 6 | "text": "when is the next ", 7 | "userDefined": false 8 | }, 9 | { 10 | "text": "android", 11 | "alias": "topic", 12 | "meta": "@topics", 13 | "userDefined": false 14 | }, 15 | { 16 | "text": " talk?", 17 | "userDefined": false 18 | } 19 | ], 20 | "isTemplate": false, 21 | "count": 0, 22 | "updated": 1525120201 23 | }, 24 | { 25 | "id": "51e5087c-f539-4014-9979-3000828d8afb", 26 | "data": [ 27 | { 28 | "text": "when is the next ", 29 | "userDefined": false 30 | }, 31 | { 32 | "text": "firebase", 33 | "alias": "topic", 34 | "meta": "@topics", 35 | "userDefined": false 36 | }, 37 | { 38 | "text": " talk", 39 | "userDefined": false 40 | } 41 | ], 42 | "isTemplate": false, 43 | "count": 0, 44 | "updated": 1525120201 45 | }, 46 | { 47 | "id": "cbab5d54-9df7-4810-a7ba-1d8d95358ece", 48 | "data": [ 49 | { 50 | "text": "tell me about ", 51 | "userDefined": false 52 | }, 53 | { 54 | "text": "android", 55 | "alias": "topic", 56 | "meta": "@topics", 57 | "userDefined": false 58 | } 59 | ], 60 | "isTemplate": false, 61 | "count": 0, 62 | "updated": 1525120201 63 | }, 64 | { 65 | "id": "6d8488b9-7d52-4293-8f90-493a9de07806", 66 | "data": [ 67 | { 68 | "text": "tell me about the ", 69 | "userDefined": false 70 | }, 71 | { 72 | "text": "Assistant", 73 | "alias": "topic", 74 | "meta": "@topics", 75 | "userDefined": false 76 | } 77 | ], 78 | "isTemplate": false, 79 | "count": 0, 80 | "updated": 1525120201 81 | }, 82 | { 83 | "id": "309475cb-513c-49c1-8cbb-cbeb6e4680be", 84 | "data": [ 85 | { 86 | "text": "Android", 87 | "alias": "topic", 88 | "meta": "@topics", 89 | "userDefined": false 90 | } 91 | ], 92 | "isTemplate": false, 93 | "count": 1, 94 | "updated": 1524104910 95 | }, 96 | { 97 | "id": "cb89d447-cb87-48ec-8b2a-4a13e0aafbfc", 98 | "data": [ 99 | { 100 | "text": "Tell me about ", 101 | "userDefined": false 102 | }, 103 | { 104 | "text": "Firebase", 105 | "alias": "topic", 106 | "meta": "@topics", 107 | "userDefined": false 108 | } 109 | ], 110 | "isTemplate": false, 111 | "count": 1, 112 | "updated": 1524104910 113 | } 114 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-topics-OPTION.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "674eb32d-1b30-4327-abf7-e03e6b0a7475", 3 | "parentId": "d5377046-81dc-454f-ad29-ccfb8f8ee943", 4 | "rootParentId": "d5377046-81dc-454f-ad29-ccfb8f8ee943", 5 | "name": "browse-topics-OPTION", 6 | "auto": true, 7 | "contexts": [ 8 | "browse-topics-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "browse-topics.browse-topics-custom", 14 | "affectedContexts": [ 15 | { 16 | "name": "browse-topics-followup", 17 | "parameters": {}, 18 | "lifespan": 0 19 | }, 20 | { 21 | "name": "browse-sessions-followup", 22 | "parameters": {}, 23 | "lifespan": 3 24 | } 25 | ], 26 | "parameters": [], 27 | "messages": [ 28 | { 29 | "type": 0, 30 | "lang": "en", 31 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 32 | } 33 | ], 34 | "defaultResponsePlatforms": {}, 35 | "speech": [] 36 | } 37 | ], 38 | "priority": 500000, 39 | "webhookUsed": true, 40 | "webhookForSlotFilling": false, 41 | "lastUpdate": 1524237600, 42 | "fallbackIntent": false, 43 | "events": [ 44 | { 45 | "name": "actions_intent_OPTION" 46 | } 47 | ] 48 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-topics-next.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "3ac7c53e-2759-47ad-bbd0-41d973703085", 3 | "parentId": "d5377046-81dc-454f-ad29-ccfb8f8ee943", 4 | "rootParentId": "d5377046-81dc-454f-ad29-ccfb8f8ee943", 5 | "name": "browse-topics-next", 6 | "auto": true, 7 | "contexts": [ 8 | "browse-topics-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "browse-topics.browse-topics-custom-2", 14 | "affectedContexts": [ 15 | { 16 | "name": "browse-topics-followup", 17 | "parameters": {}, 18 | "lifespan": 3 19 | } 20 | ], 21 | "parameters": [], 22 | "messages": [ 23 | { 24 | "type": 0, 25 | "lang": "en", 26 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 27 | } 28 | ], 29 | "defaultResponsePlatforms": {}, 30 | "speech": [] 31 | } 32 | ], 33 | "priority": 500000, 34 | "webhookUsed": true, 35 | "webhookForSlotFilling": false, 36 | "lastUpdate": 1525132197, 37 | "fallbackIntent": false, 38 | "events": [] 39 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-topics-next_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "475a94c4-bf3b-46f4-bf5e-2b712829272e", 4 | "data": [ 5 | { 6 | "text": "nah", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525132197 13 | }, 14 | { 15 | "id": "a7c59809-af8f-47d7-a5f1-fede012038f5", 16 | "data": [ 17 | { 18 | "text": "nope", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525132197 25 | }, 26 | { 27 | "id": "cddce34c-c1de-4036-b26b-eec38215d3ef", 28 | "data": [ 29 | { 30 | "text": "no", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525132197 37 | }, 38 | { 39 | "id": "51d899c9-55f7-442e-81b1-e6c01aa3cee8", 40 | "data": [ 41 | { 42 | "text": "next", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 2, 48 | "updated": 1525132197 49 | }, 50 | { 51 | "id": "02c2090a-9051-4a81-a48f-3b893e93c4ee", 52 | "data": [ 53 | { 54 | "text": "other topics", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1525132197 61 | }, 62 | { 63 | "id": "cdab5bad-cbf3-4e06-bc9c-47f3382c95f5", 64 | "data": [ 65 | { 66 | "text": "other sessions", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1525132197 73 | }, 74 | { 75 | "id": "88834282-a208-47c3-ad5f-9736a6433692", 76 | "data": [ 77 | { 78 | "text": "what else is there", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1525132197 85 | }, 86 | { 87 | "id": "fee374c1-1f25-449c-90b1-55a666192295", 88 | "data": [ 89 | { 90 | "text": "whats next", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1525132197 97 | }, 98 | { 99 | "id": "c8c3c5a5-56eb-4e72-89fb-3395f500afb8", 100 | "data": [ 101 | { 102 | "text": "what else", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1525132197 109 | }, 110 | { 111 | "id": "dc1a5ec0-ebf8-4cdb-9bcf-9eb6e768e755", 112 | "data": [ 113 | { 114 | "text": "i don\u0027t want any of those", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 1525132197 121 | }, 122 | { 123 | "id": "9849093a-bcba-4704-9c56-705d3e574afe", 124 | "data": [ 125 | { 126 | "text": "none", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 1, 132 | "updated": 1525132197 133 | }, 134 | { 135 | "id": "b5bdf0c6-1863-4d68-9ec1-f505a8326adf", 136 | "data": [ 137 | { 138 | "text": " none of those", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 1, 144 | "updated": 1523763430 145 | } 146 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-topics-repeat.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "94dd4e7a-6394-4ff3-8539-38c245fe6570", 3 | "parentId": "d5377046-81dc-454f-ad29-ccfb8f8ee943", 4 | "rootParentId": "d5377046-81dc-454f-ad29-ccfb8f8ee943", 5 | "name": "browse-topics-repeat", 6 | "auto": true, 7 | "contexts": [ 8 | "browse-topics-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "browse-topics.browse-topics-repeat", 14 | "affectedContexts": [ 15 | { 16 | "name": "browse-topics-followup", 17 | "parameters": {}, 18 | "lifespan": 3 19 | } 20 | ], 21 | "parameters": [], 22 | "messages": [ 23 | { 24 | "type": 0, 25 | "lang": "en", 26 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 27 | } 28 | ], 29 | "defaultResponsePlatforms": {}, 30 | "speech": [] 31 | } 32 | ], 33 | "priority": 500000, 34 | "webhookUsed": true, 35 | "webhookForSlotFilling": false, 36 | "lastUpdate": 1524237610, 37 | "fallbackIntent": false, 38 | "events": [] 39 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-topics-repeat_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "a26ea653-21d1-4593-9c75-5c74c8148cb7", 4 | "data": [ 5 | { 6 | "text": "what were they", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1523767779 13 | }, 14 | { 15 | "id": "bfc7a55b-006b-4d8a-8f3d-47d034e0933b", 16 | "data": [ 17 | { 18 | "text": "what", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 1, 24 | "updated": 1523767779 25 | }, 26 | { 27 | "id": "8315bddb-9331-4704-af0d-96c1a0a03dbc", 28 | "data": [ 29 | { 30 | "text": "repeat", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1523767779 37 | }, 38 | { 39 | "id": "6a80cadc-8bcf-46ce-82dc-7868792a5c7f", 40 | "data": [ 41 | { 42 | "text": "repeat it", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1523767779 49 | }, 50 | { 51 | "id": "e789956b-8128-426a-935d-e5627598e4f8", 52 | "data": [ 53 | { 54 | "text": "could you repeat that", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1523767779 61 | }, 62 | { 63 | "id": "033bed8a-095d-46ec-a834-ad5c7c84cce8", 64 | "data": [ 65 | { 66 | "text": "do it again", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1523767779 73 | }, 74 | { 75 | "id": "862eff0c-72a7-48fc-a10e-b739c01c89cf", 76 | "data": [ 77 | { 78 | "text": "repeat these results", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1523767779 85 | }, 86 | { 87 | "id": "6e506a3e-395e-463a-accc-5789b075c362", 88 | "data": [ 89 | { 90 | "text": "say the same again", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1523767779 97 | }, 98 | { 99 | "id": "2c1ea0bc-04c4-4c1f-881c-9547f5b79bea", 100 | "data": [ 101 | { 102 | "text": "repeat what you\u0027ve just said", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1523767779 109 | }, 110 | { 111 | "id": "d465cbfc-fd26-4a29-9c0b-d6d19ca7cf1d", 112 | "data": [ 113 | { 114 | "text": "come again", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 1523767779 121 | }, 122 | { 123 | "id": "cf79b8e4-f9e6-406b-bfc2-35bdce9962d3", 124 | "data": [ 125 | { 126 | "text": "say it again", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 1, 132 | "updated": 1523767779 133 | }, 134 | { 135 | "id": "86ab6803-c860-4a0c-bd75-047c8c8e16bb", 136 | "data": [ 137 | { 138 | "text": "please repeat that", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 1, 144 | "updated": 0 145 | } 146 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/browse-topics.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "d5377046-81dc-454f-ad29-ccfb8f8ee943", 3 | "name": "browse-topics", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [ 10 | { 11 | "name": "browse-topics-followup", 12 | "parameters": {}, 13 | "lifespan": 3 14 | }, 15 | { 16 | "name": "browse-sessions-followup", 17 | "parameters": {}, 18 | "lifespan": 0 19 | }, 20 | { 21 | "name": "show-schedule-followup", 22 | "parameters": {}, 23 | "lifespan": 0 24 | } 25 | ], 26 | "parameters": [ 27 | { 28 | "id": "44feff6b-e21f-442e-9e83-c51bf45c485f", 29 | "dataType": "@session-type", 30 | "name": "session-type", 31 | "value": "$session-type", 32 | "isList": false 33 | } 34 | ], 35 | "messages": [ 36 | { 37 | "type": 0, 38 | "lang": "en", 39 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 40 | } 41 | ], 42 | "defaultResponsePlatforms": {}, 43 | "speech": [] 44 | } 45 | ], 46 | "priority": 500000, 47 | "webhookUsed": true, 48 | "webhookForSlotFilling": false, 49 | "lastUpdate": 1526423477, 50 | "fallbackIntent": false, 51 | "events": [] 52 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/cancel.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "dd2a4b12-f307-4abc-bd3b-dd7602e53ffa", 3 | "name": "cancel", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Come back if there\u0027s anything else IO you\u0027d like to know." 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1524237657, 26 | "fallbackIntent": false, 27 | "events": [ 28 | { 29 | "name": "actions_intent_CANCEL" 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/cancel_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "ef1cd7b8-8376-4fac-9ce1-8ff08861305f", 4 | "data": [ 5 | { 6 | "text": "i don\u0027t want anything else", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1524183939 13 | }, 14 | { 15 | "id": "96b47cc6-f1a2-47e9-bcce-6ebccf890f6a", 16 | "data": [ 17 | { 18 | "text": "see you", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 1, 24 | "updated": 1523766288 25 | }, 26 | { 27 | "id": "c6123b04-c212-46a4-a6dd-a9da5a97250b", 28 | "data": [ 29 | { 30 | "text": "good bye", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1523766288 37 | }, 38 | { 39 | "id": "c0f061a4-6c29-487e-a177-dc98b0cd2117", 40 | "data": [ 41 | { 42 | "text": "bye", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1523766288 49 | }, 50 | { 51 | "id": "c1ed106c-0ace-49aa-8db8-eb9aaed04cdb", 52 | "data": [ 53 | { 54 | "text": "i\u0027m done", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1523254248 61 | }, 62 | { 63 | "id": "dbd04f1e-3b17-44e5-8382-dd76f951b3b3", 64 | "data": [ 65 | { 66 | "text": "nothing else", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 2, 72 | "updated": 1523254248 73 | }, 74 | { 75 | "id": "b2624786-cdaf-4b67-b067-1cba7daa103c", 76 | "data": [ 77 | { 78 | "text": "i\u0027m finished", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1523254248 85 | }, 86 | { 87 | "id": "2f1a9bd1-837f-4920-89a7-b3b8f351224e", 88 | "data": [ 89 | { 90 | "text": "none of those", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1523254248 97 | }, 98 | { 99 | "id": "18f5baeb-c405-4f86-b551-1245372777ad", 100 | "data": [ 101 | { 102 | "text": "that\u0027s all i needed", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1523254248 109 | }, 110 | { 111 | "id": "f08eaf97-dcf4-48bc-8bff-bbfe454a0f33", 112 | "data": [ 113 | { 114 | "text": "that\u0027s all", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 1523254248 121 | }, 122 | { 123 | "id": "587c0bf0-d7fe-4a36-aa55-f5d807cf9050", 124 | "data": [ 125 | { 126 | "text": "none", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 1, 132 | "updated": 1523254248 133 | }, 134 | { 135 | "id": "7080613c-d183-42ab-9e88-ad641e26716a", 136 | "data": [ 137 | { 138 | "text": "no thanks", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 1, 144 | "updated": 1523254248 145 | } 146 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/check-type.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "0f8d6e74-201c-4b87-a2f6-955cb75db950", 3 | "parentId": "52028621-a35e-400a-ae17-1d8068b50031", 4 | "rootParentId": "52028621-a35e-400a-ae17-1d8068b50031", 5 | "name": "check-type", 6 | "auto": true, 7 | "contexts": [ 8 | "browse-sessions-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "browse-sessions.browse-sessions-custom", 14 | "affectedContexts": [ 15 | { 16 | "name": "browse-sessions-followup", 17 | "parameters": {}, 18 | "lifespan": 2 19 | }, 20 | { 21 | "name": "browse-topics-followup", 22 | "parameters": {}, 23 | "lifespan": 0 24 | }, 25 | { 26 | "name": "type-checked", 27 | "parameters": {}, 28 | "lifespan": 2 29 | } 30 | ], 31 | "parameters": [ 32 | { 33 | "id": "3a717b9e-a342-4aaa-a5c1-7da9cec61952", 34 | "required": true, 35 | "dataType": "@session-type", 36 | "name": "session-type", 37 | "value": "$session-type", 38 | "prompts": [ 39 | { 40 | "lang": "en", 41 | "value": "Are you interested in sessions or office hours?" 42 | } 43 | ], 44 | "isList": false 45 | } 46 | ], 47 | "messages": [ 48 | { 49 | "type": 0, 50 | "lang": "en", 51 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 52 | } 53 | ], 54 | "defaultResponsePlatforms": {}, 55 | "speech": [] 56 | } 57 | ], 58 | "priority": 500000, 59 | "webhookUsed": true, 60 | "webhookForSlotFilling": false, 61 | "lastUpdate": 1526423426, 62 | "fallbackIntent": false, 63 | "events": [] 64 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/check-type_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "54e9263f-cbd6-4220-b393-71d8a9d3bab2", 4 | "data": [ 5 | { 6 | "text": "Browse ", 7 | "userDefined": false 8 | }, 9 | { 10 | "text": "sessions", 11 | "alias": "session-type", 12 | "meta": "@session-type", 13 | "userDefined": false 14 | } 15 | ], 16 | "isTemplate": false, 17 | "count": 1, 18 | "updated": 1526423426 19 | }, 20 | { 21 | "id": "8da63f01-7a62-4ddf-b77d-5bd021d85634", 22 | "data": [ 23 | { 24 | "text": "sessions", 25 | "alias": "session-type", 26 | "meta": "@session-type", 27 | "userDefined": true 28 | } 29 | ], 30 | "isTemplate": false, 31 | "count": 2, 32 | "updated": 1526423426 33 | }, 34 | { 35 | "id": "b5a32dfa-e5b7-49d2-a4d6-a7c87b4bc353", 36 | "data": [ 37 | { 38 | "text": "Office Hours", 39 | "alias": "session-type", 40 | "meta": "@session-type", 41 | "userDefined": false 42 | } 43 | ], 44 | "isTemplate": false, 45 | "count": 1, 46 | "updated": 1526423426 47 | } 48 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/codelabs.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "2bad5489-24ff-4273-9aab-a76d5f35cca0", 3 | "name": "codelabs", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1525392846, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/codelabs_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "5e90dd3c-363a-474e-a7d2-da9874de6f64", 4 | "data": [ 5 | { 6 | "text": "try some demos", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1525392846 13 | }, 14 | { 15 | "id": "11abb289-f788-441c-afd5-046346c650ce", 16 | "data": [ 17 | { 18 | "text": "demo", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525392846 25 | }, 26 | { 27 | "id": "5ddbb9a3-a9a1-452f-ab99-b0ceb082945c", 28 | "data": [ 29 | { 30 | "text": "demos", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525392846 37 | }, 38 | { 39 | "id": "d4c31bf3-8ec5-4907-bf65-48ae4e3a8859", 40 | "data": [ 41 | { 42 | "text": "codelab", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1525392846 49 | }, 50 | { 51 | "id": "ac63ffce-8af3-44c4-8e5d-f712f1199a82", 52 | "data": [ 53 | { 54 | "text": "Codelabs and sandboxes", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1525392846 61 | }, 62 | { 63 | "id": "5038e64c-b935-4ccb-8ad9-8390794b07f6", 64 | "data": [ 65 | { 66 | "text": "code lab", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1525392846 73 | }, 74 | { 75 | "id": "a34beef9-7c4b-459a-869e-d4eb61909200", 76 | "data": [ 77 | { 78 | "text": "sand box", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1525392846 85 | }, 86 | { 87 | "id": "51ab9345-6ee7-493c-b619-fdd5f9030b7a", 88 | "data": [ 89 | { 90 | "text": "work with sand box", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1525392846 97 | }, 98 | { 99 | "id": "9b7d74e7-7737-4528-9bde-1353507c422d", 100 | "data": [ 101 | { 102 | "text": "do code lab", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1525392846 109 | }, 110 | { 111 | "id": "b66b90db-3ebd-450b-ad99-d93dcbfd4da3", 112 | "data": [ 113 | { 114 | "text": "build in code labs", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 1525392846 121 | }, 122 | { 123 | "id": "d01b5885-0c41-45fa-9ff6-05eae4f336f7", 124 | "data": [ 125 | { 126 | "text": "work with code", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 1, 132 | "updated": 1525392846 133 | }, 134 | { 135 | "id": "f089c983-6f2e-4eed-bebb-befffb0eddee", 136 | "data": [ 137 | { 138 | "text": "Play in sandbox", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 1, 144 | "updated": 1525392846 145 | }, 146 | { 147 | "id": "3a9b6e6c-ba2a-46a4-a4bb-29fe47c13470", 148 | "data": [ 149 | { 150 | "text": "Do codelabs", 151 | "userDefined": false 152 | } 153 | ], 154 | "isTemplate": false, 155 | "count": 1, 156 | "updated": 1523578383 157 | }, 158 | { 159 | "id": "a9c1b1ae-b81f-480a-856d-e13a4c75daf3", 160 | "data": [ 161 | { 162 | "text": "coding", 163 | "userDefined": false 164 | } 165 | ], 166 | "isTemplate": false, 167 | "count": 1, 168 | "updated": 1523578383 169 | }, 170 | { 171 | "id": "8790fe6b-02ce-4362-bf59-33ed42cc3019", 172 | "data": [ 173 | { 174 | "text": "hands on", 175 | "userDefined": false 176 | } 177 | ], 178 | "isTemplate": false, 179 | "count": 1, 180 | "updated": 1523578383 181 | }, 182 | { 183 | "id": "02f75be3-29f9-48cf-9927-5e8bdd960159", 184 | "data": [ 185 | { 186 | "text": "codelabe and sandbox", 187 | "userDefined": false 188 | } 189 | ], 190 | "isTemplate": false, 191 | "count": 1, 192 | "updated": 1523578383 193 | }, 194 | { 195 | "id": "b9d3136d-5ad2-45ce-8deb-60757cfaf17b", 196 | "data": [ 197 | { 198 | "text": "Codelab sandbox", 199 | "userDefined": false 200 | } 201 | ], 202 | "isTemplate": false, 203 | "count": 1, 204 | "updated": 1523578383 205 | }, 206 | { 207 | "id": "cae2589d-baf8-4fd1-bec9-a0160c95ac4c", 208 | "data": [ 209 | { 210 | "text": "Tell me about sandbox", 211 | "userDefined": false 212 | } 213 | ], 214 | "isTemplate": false, 215 | "count": 1, 216 | "updated": 1523578383 217 | }, 218 | { 219 | "id": "ca4c44af-d255-4c07-9ef4-a82401eb16b0", 220 | "data": [ 221 | { 222 | "text": "I want to hear about codelabs", 223 | "userDefined": false 224 | } 225 | ], 226 | "isTemplate": false, 227 | "count": 1, 228 | "updated": 1523578383 229 | } 230 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/concert.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "8792a72a-5819-477a-9e18-1301e8e8c011", 3 | "name": "concert", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [ 10 | { 11 | "name": "concert-followup", 12 | "parameters": {}, 13 | "lifespan": 2 14 | } 15 | ], 16 | "parameters": [], 17 | "messages": [ 18 | { 19 | "type": 0, 20 | "lang": "en", 21 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 22 | } 23 | ], 24 | "defaultResponsePlatforms": {}, 25 | "speech": [] 26 | } 27 | ], 28 | "priority": 500000, 29 | "webhookUsed": true, 30 | "webhookForSlotFilling": false, 31 | "lastUpdate": 1525758623, 32 | "fallbackIntent": false, 33 | "events": [] 34 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/concert_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "122d26cc-e80f-446f-8632-4e4da4d243f6", 4 | "data": [ 5 | { 6 | "text": "what bands are playing at the ", 7 | "userDefined": false 8 | }, 9 | { 10 | "text": "concert", 11 | "meta": "@sys.ignore", 12 | "userDefined": false 13 | }, 14 | { 15 | "text": "?", 16 | "userDefined": false 17 | } 18 | ], 19 | "isTemplate": false, 20 | "count": 0, 21 | "updated": 1525742737 22 | }, 23 | { 24 | "id": "cc0083d6-4772-4c64-a1ef-e77945efebb3", 25 | "data": [ 26 | { 27 | "text": "what band is playing at the ", 28 | "userDefined": false 29 | }, 30 | { 31 | "text": "concert", 32 | "meta": "@sys.ignore", 33 | "userDefined": false 34 | }, 35 | { 36 | "text": "?", 37 | "userDefined": false 38 | } 39 | ], 40 | "isTemplate": false, 41 | "count": 0, 42 | "updated": 1525742737 43 | }, 44 | { 45 | "id": "1e078207-af41-4828-a022-20da0820a8fa", 46 | "data": [ 47 | { 48 | "text": "who is playing at the ", 49 | "userDefined": false 50 | }, 51 | { 52 | "text": "concert?", 53 | "meta": "@sys.ignore", 54 | "userDefined": false 55 | } 56 | ], 57 | "isTemplate": false, 58 | "count": 0, 59 | "updated": 1525742737 60 | }, 61 | { 62 | "id": "db4a3304-5f7c-4922-ba48-000221461953", 63 | "data": [ 64 | { 65 | "text": "info about the ", 66 | "userDefined": false 67 | }, 68 | { 69 | "text": "concert", 70 | "meta": "@sys.ignore", 71 | "userDefined": false 72 | } 73 | ], 74 | "isTemplate": false, 75 | "count": 0, 76 | "updated": 1525742737 77 | }, 78 | { 79 | "id": "6a69f7ae-4409-4bdc-82e4-87f126ac913a", 80 | "data": [ 81 | { 82 | "text": "information about the ", 83 | "userDefined": false 84 | }, 85 | { 86 | "text": "concert", 87 | "meta": "@sys.ignore", 88 | "userDefined": false 89 | } 90 | ], 91 | "isTemplate": false, 92 | "count": 0, 93 | "updated": 1525742737 94 | }, 95 | { 96 | "id": "17ccad8a-6bd8-4bf0-905c-52ff92607576", 97 | "data": [ 98 | { 99 | "text": "tell me about the ", 100 | "userDefined": false 101 | }, 102 | { 103 | "text": "concert", 104 | "meta": "@sys.ignore", 105 | "userDefined": false 106 | } 107 | ], 108 | "isTemplate": false, 109 | "count": 0, 110 | "updated": 1525742737 111 | }, 112 | { 113 | "id": "e40872f3-ef33-443a-88da-307e70ad348d", 114 | "data": [ 115 | { 116 | "text": "concert", 117 | "meta": "@sys.ignore", 118 | "userDefined": false 119 | } 120 | ], 121 | "isTemplate": false, 122 | "count": 0, 123 | "updated": 1525742737 124 | } 125 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/date.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "83c5b1b3-54c7-4ae8-b725-527e55c5645c", 3 | "name": "date", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1524636415, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/date_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "1a9c57ad-a967-4c8c-8997-158c44e10dc8", 4 | "data": [ 5 | { 6 | "text": "where is ayo", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1524636415 13 | }, 14 | { 15 | "id": "56e2a835-3a66-4877-a88c-bbe251bb9ea4", 16 | "data": [ 17 | { 18 | "text": "when is ", 19 | "userDefined": false 20 | }, 21 | { 22 | "text": "iowa", 23 | "meta": "@sys.ignore", 24 | "userDefined": false 25 | } 26 | ], 27 | "isTemplate": false, 28 | "count": 0, 29 | "updated": 1524636415 30 | }, 31 | { 32 | "id": "f278008d-0074-4581-902d-da49fd9155a1", 33 | "data": [ 34 | { 35 | "text": "the date", 36 | "userDefined": false 37 | } 38 | ], 39 | "isTemplate": false, 40 | "count": 1, 41 | "updated": 1523258499 42 | }, 43 | { 44 | "id": "cc5f068c-5f91-41c3-8e64-f909a9545b21", 45 | "data": [ 46 | { 47 | "text": "when is io?", 48 | "userDefined": false 49 | } 50 | ], 51 | "isTemplate": false, 52 | "count": 1, 53 | "updated": 1524636415 54 | }, 55 | { 56 | "id": "b27e4e17-f38b-47a6-bb0a-9236db31d062", 57 | "data": [ 58 | { 59 | "text": "when is it happening?", 60 | "userDefined": false 61 | } 62 | ], 63 | "isTemplate": false, 64 | "count": 0, 65 | "updated": 1524636415 66 | }, 67 | { 68 | "id": "b079dc98-e145-486e-8fb2-b8f77ab7a2f4", 69 | "data": [ 70 | { 71 | "text": "when is it?", 72 | "userDefined": false 73 | } 74 | ], 75 | "isTemplate": false, 76 | "count": 0, 77 | "updated": 1524636415 78 | }, 79 | { 80 | "id": "858cc2de-22bc-40d2-a344-c5b9d2e075f7", 81 | "data": [ 82 | { 83 | "text": "what day is it?", 84 | "userDefined": false 85 | } 86 | ], 87 | "isTemplate": false, 88 | "count": 0, 89 | "updated": 1524636415 90 | }, 91 | { 92 | "id": "26cfa259-d5e9-4097-ba36-3ccfc9511f16", 93 | "data": [ 94 | { 95 | "text": "location", 96 | "meta": "@sys.ignore", 97 | "userDefined": false 98 | } 99 | ], 100 | "isTemplate": false, 101 | "count": 0, 102 | "updated": 1524636415 103 | }, 104 | { 105 | "id": "b50c1da1-8d77-46c1-aafb-c2532e5547c1", 106 | "data": [ 107 | { 108 | "text": "where\u0027s it located", 109 | "userDefined": false 110 | } 111 | ], 112 | "isTemplate": false, 113 | "count": 0, 114 | "updated": 1524636415 115 | }, 116 | { 117 | "id": "e254b4df-80b0-44ed-8d85-af63103d2677", 118 | "data": [ 119 | { 120 | "text": "where\u0027s it happening?", 121 | "userDefined": false 122 | } 123 | ], 124 | "isTemplate": false, 125 | "count": 0, 126 | "updated": 1524636415 127 | }, 128 | { 129 | "id": "2940ecd2-3149-4a19-9949-c91eb21e0526", 130 | "data": [ 131 | { 132 | "text": "where is it happening?", 133 | "userDefined": false 134 | } 135 | ], 136 | "isTemplate": false, 137 | "count": 0, 138 | "updated": 1524636415 139 | }, 140 | { 141 | "id": "ceb85d15-5a81-4d83-ad6e-015f5677160a", 142 | "data": [ 143 | { 144 | "text": " where is Google IO?", 145 | "userDefined": false 146 | } 147 | ], 148 | "isTemplate": false, 149 | "count": 0, 150 | "updated": 1524526379 151 | }, 152 | { 153 | "id": "e50bf4ad-2ce0-4dd8-b0e6-c1ef4472a0e7", 154 | "data": [ 155 | { 156 | "text": "where is IO?", 157 | "userDefined": false 158 | } 159 | ], 160 | "isTemplate": false, 161 | "count": 0, 162 | "updated": 1524526379 163 | }, 164 | { 165 | "id": "6a498ad9-4db5-46e2-b820-63832a3c8ef8", 166 | "data": [ 167 | { 168 | "text": "where?", 169 | "userDefined": false 170 | } 171 | ], 172 | "isTemplate": false, 173 | "count": 0, 174 | "updated": 1524526379 175 | }, 176 | { 177 | "id": "8b53b2bb-3d21-4845-a4cc-163aaf4a5470", 178 | "data": [ 179 | { 180 | "text": "where is it?", 181 | "userDefined": false 182 | } 183 | ], 184 | "isTemplate": false, 185 | "count": 0, 186 | "updated": 1524526379 187 | } 188 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/directions.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "0b08fa62-0ad3-484b-b5be-32249a0d8b80", 3 | "name": "directions", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [ 10 | { 11 | "name": "directions-followup", 12 | "parameters": {}, 13 | "lifespan": 2 14 | } 15 | ], 16 | "parameters": [ 17 | { 18 | "id": "cbd9f1ef-6b2e-47c2-b567-c266810f1d0c", 19 | "required": false, 20 | "dataType": "@room", 21 | "name": "room", 22 | "value": "$room", 23 | "isList": false 24 | } 25 | ], 26 | "messages": [ 27 | { 28 | "type": 0, 29 | "lang": "en", 30 | "speech": [] 31 | } 32 | ], 33 | "defaultResponsePlatforms": {}, 34 | "speech": [] 35 | } 36 | ], 37 | "priority": 500000, 38 | "webhookUsed": true, 39 | "webhookForSlotFilling": false, 40 | "lastUpdate": 1525841310, 41 | "fallbackIntent": false, 42 | "events": [] 43 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/directions_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "471b89ec-da3f-47b5-bcc4-f8a67888d64f", 4 | "data": [ 5 | { 6 | "text": "where is ", 7 | "userDefined": false 8 | }, 9 | { 10 | "text": "tent E", 11 | "alias": "room", 12 | "meta": "@room", 13 | "userDefined": false 14 | } 15 | ], 16 | "isTemplate": false, 17 | "count": 0, 18 | "updated": 1525841310 19 | }, 20 | { 21 | "id": "5bc31734-83f9-42f6-a9de-697d469ff799", 22 | "data": [ 23 | { 24 | "text": "tent a", 25 | "alias": "room", 26 | "meta": "@room", 27 | "userDefined": false 28 | } 29 | ], 30 | "isTemplate": false, 31 | "count": 0, 32 | "updated": 1525751403 33 | }, 34 | { 35 | "id": "fa75555f-dd6d-4917-a8f9-5ac941c71a52", 36 | "data": [ 37 | { 38 | "text": "the ", 39 | "userDefined": false 40 | }, 41 | { 42 | "text": "community lounge", 43 | "alias": "room", 44 | "meta": "@room", 45 | "userDefined": false 46 | } 47 | ], 48 | "isTemplate": false, 49 | "count": 0, 50 | "updated": 1525841310 51 | }, 52 | { 53 | "id": "37df066b-eb46-4e9b-a8ae-299bb0b63827", 54 | "data": [ 55 | { 56 | "text": "directions to ", 57 | "userDefined": false 58 | }, 59 | { 60 | "text": "tent f", 61 | "alias": "room", 62 | "meta": "@room", 63 | "userDefined": false 64 | } 65 | ], 66 | "isTemplate": false, 67 | "count": 0, 68 | "updated": 1525841310 69 | }, 70 | { 71 | "id": "f2fee990-abe5-4619-b629-5d411a608bf4", 72 | "data": [ 73 | { 74 | "text": "get directions to the ", 75 | "userDefined": false 76 | }, 77 | { 78 | "text": "amphitheatre", 79 | "alias": "room", 80 | "meta": "@room", 81 | "userDefined": false 82 | } 83 | ], 84 | "isTemplate": false, 85 | "count": 0, 86 | "updated": 1525841310 87 | }, 88 | { 89 | "id": "96d6fbe9-b00c-42c5-ba12-4a2ba56d8182", 90 | "data": [ 91 | { 92 | "text": "how do i get to the ", 93 | "userDefined": false 94 | }, 95 | { 96 | "text": "community lounge", 97 | "alias": "room", 98 | "meta": "@room", 99 | "userDefined": false 100 | }, 101 | { 102 | "text": "?", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 0, 108 | "updated": 1525841310 109 | }, 110 | { 111 | "id": "35f2bddc-d057-4eca-b901-2748753b74ac", 112 | "data": [ 113 | { 114 | "text": "where is the ", 115 | "userDefined": false 116 | }, 117 | { 118 | "text": "community lounge", 119 | "alias": "room", 120 | "meta": "@room", 121 | "userDefined": false 122 | }, 123 | { 124 | "text": "?", 125 | "userDefined": false 126 | } 127 | ], 128 | "isTemplate": false, 129 | "count": 0, 130 | "updated": 1525841310 131 | }, 132 | { 133 | "id": "ced6980e-e9a9-43ae-9761-c673f99378ae", 134 | "data": [ 135 | { 136 | "text": "how do i get to ", 137 | "userDefined": false 138 | }, 139 | { 140 | "text": "tent a", 141 | "alias": "room", 142 | "meta": "@room", 143 | "userDefined": false 144 | }, 145 | { 146 | "text": "?", 147 | "userDefined": false 148 | } 149 | ], 150 | "isTemplate": false, 151 | "count": 0, 152 | "updated": 1525841310 153 | }, 154 | { 155 | "id": "2d4e4cf8-4542-4451-9c0d-02777f92d917", 156 | "data": [ 157 | { 158 | "text": "how do i get to ", 159 | "userDefined": false 160 | }, 161 | { 162 | "text": "stage 1", 163 | "alias": "room", 164 | "meta": "@room", 165 | "userDefined": false 166 | } 167 | ], 168 | "isTemplate": false, 169 | "count": 0, 170 | "updated": 1525841310 171 | }, 172 | { 173 | "id": "f1194094-8a57-4a05-b1c8-d97d93d9d2e1", 174 | "data": [ 175 | { 176 | "text": "get directions to ", 177 | "userDefined": false 178 | }, 179 | { 180 | "text": "stage 1", 181 | "alias": "room", 182 | "meta": "@room", 183 | "userDefined": false 184 | } 185 | ], 186 | "isTemplate": false, 187 | "count": 0, 188 | "updated": 1525841310 189 | }, 190 | { 191 | "id": "dfdfaa38-620a-4ae7-a36f-bdea09eaeeb4", 192 | "data": [ 193 | { 194 | "text": "directions", 195 | "userDefined": false 196 | } 197 | ], 198 | "isTemplate": false, 199 | "count": 0, 200 | "updated": 1525841310 201 | }, 202 | { 203 | "id": "66eecd75-78ad-4604-9380-4350f799c445", 204 | "data": [ 205 | { 206 | "text": "get directions", 207 | "userDefined": false 208 | } 209 | ], 210 | "isTemplate": false, 211 | "count": 0, 212 | "updated": 1525841310 213 | } 214 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/easter-eggs.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "d23156bc-191a-4b98-b34a-8948d98177cf", 3 | "name": "easter-eggs", 4 | "auto": false, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": "simple_response", 14 | "platform": "google", 15 | "lang": "en", 16 | "textToSpeech": "I can manage your viewing schedule or help you look for talks. What can I help you with?" 17 | }, 18 | { 19 | "type": "suggestion_chips", 20 | "platform": "google", 21 | "lang": "en", 22 | "suggestions": [ 23 | { 24 | "title": "Announcements" 25 | }, 26 | { 27 | "title": "Keynotes" 28 | }, 29 | { 30 | "title": "Where is the food" 31 | }, 32 | { 33 | "title": "Codelabs and Sandboxes" 34 | }, 35 | { 36 | "title": "Search for talks" 37 | } 38 | ] 39 | }, 40 | { 41 | "type": 0, 42 | "lang": "en", 43 | "speech": "My favorite kind is easter eggs." 44 | } 45 | ], 46 | "defaultResponsePlatforms": { 47 | "google": true 48 | }, 49 | "speech": [] 50 | } 51 | ], 52 | "priority": 500000, 53 | "webhookUsed": false, 54 | "webhookForSlotFilling": false, 55 | "lastUpdate": 1526334866, 56 | "fallbackIntent": false, 57 | "events": [] 58 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/easter-eggs_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "b76bca96-cf3f-4c24-aebd-064d8d25ac5b", 4 | "data": [ 5 | { 6 | "text": "easter egg", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525749095 13 | }, 14 | { 15 | "id": "f4fbfdc7-e6eb-4696-91d4-01febc956bcf", 16 | "data": [ 17 | { 18 | "text": "eggs", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525749095 25 | }, 26 | { 27 | "id": "fdab44ef-92f5-42a2-9211-a9c391136077", 28 | "data": [ 29 | { 30 | "text": "how it likes its eggs", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525749095 37 | }, 38 | { 39 | "id": "01e474a2-245f-4f64-bdb4-1a5b72e87677", 40 | "data": [ 41 | { 42 | "text": "How do you like your eggs?", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1525749095 49 | } 50 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/fallback.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "60dcd7dc-ca0f-4be5-84ea-d837f3b95cb5", 3 | "name": "fallback", 4 | "auto": false, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "action": "input.unknown", 10 | "affectedContexts": [], 11 | "parameters": [], 12 | "messages": [ 13 | { 14 | "type": 0, 15 | "lang": "en", 16 | "speech": "Sorry. That\u0027s beyond my expertise. Can I interest you in info on the keynotes, the sessions, or how to watch remotely?" 17 | } 18 | ], 19 | "defaultResponsePlatforms": {}, 20 | "speech": [] 21 | } 22 | ], 23 | "priority": 500000, 24 | "webhookUsed": true, 25 | "webhookForSlotFilling": false, 26 | "lastUpdate": 1524376173, 27 | "fallbackIntent": true, 28 | "events": [] 29 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/food.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "772098db-b1c0-4bf0-a633-3a220db7f10a", 3 | "name": "food", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1525392916, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/food_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "1f5c04ea-82d2-4f7c-bf6d-6c3e4b6772b6", 4 | "data": [ 5 | { 6 | "text": "Tell me about the food", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525392916 13 | }, 14 | { 15 | "id": "6608355f-7463-4543-92f3-b5107f6b0971", 16 | "data": [ 17 | { 18 | "text": "Will there be food?", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525392916 25 | }, 26 | { 27 | "id": "fbe1f888-8460-4c93-b57c-4f565a763d1b", 28 | "data": [ 29 | { 30 | "text": "What kind of food is there?", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1525392916 37 | }, 38 | { 39 | "id": "e8eab2b3-1ffd-473f-8a00-9d5bbb2363ab", 40 | "data": [ 41 | { 42 | "text": "Is there food?", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1525392916 49 | }, 50 | { 51 | "id": "86f7ac36-6486-4521-9350-c4af24172000", 52 | "data": [ 53 | { 54 | "text": "Tell me about the meals.", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1525392916 61 | }, 62 | { 63 | "id": "93c5afd1-0eb1-4fb3-88d7-3fbc91ec4b20", 64 | "data": [ 65 | { 66 | "text": "What is dinner?", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1525392916 73 | }, 74 | { 75 | "id": "a5127b85-d7a5-46e1-bb01-f70441def2a6", 76 | "data": [ 77 | { 78 | "text": "Does lunch cost anything?", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1525392916 85 | }, 86 | { 87 | "id": "6c0a6970-cacc-4951-b993-fb027400c071", 88 | "data": [ 89 | { 90 | "text": "Can I have breakfast?", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1525392916 97 | }, 98 | { 99 | "id": "2f0b781e-ba86-484d-a103-73961d8d7f31", 100 | "data": [ 101 | { 102 | "text": "What is there to eat?", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1523592287 109 | } 110 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/keynote.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "08b90989-d636-49af-ab49-1056b524c8d7", 3 | "name": "keynote", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1524237731, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/keynote_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "c3f67152-1cca-49d0-ba73-73800b95d635", 4 | "data": [ 5 | { 6 | "text": "google keynote", 7 | "meta": "@sys.ignore", 8 | "userDefined": false 9 | } 10 | ], 11 | "isTemplate": false, 12 | "count": 0, 13 | "updated": 1525453968 14 | }, 15 | { 16 | "id": "0a8d7a33-7d8f-4831-835d-1a0daef0b4f9", 17 | "data": [ 18 | { 19 | "text": "developer keynote", 20 | "meta": "@sys.ignore", 21 | "userDefined": false 22 | } 23 | ], 24 | "isTemplate": false, 25 | "count": 0, 26 | "updated": 1525453968 27 | }, 28 | { 29 | "id": "d5a7fa6c-d53d-4ba5-8f40-3bb7f1e59cdd", 30 | "data": [ 31 | { 32 | "text": "keynotes", 33 | "userDefined": false 34 | } 35 | ], 36 | "isTemplate": false, 37 | "count": 0, 38 | "updated": 1525453968 39 | }, 40 | { 41 | "id": "f53b3cd9-46fb-42eb-83ce-983c36335b4c", 42 | "data": [ 43 | { 44 | "text": "the keynote", 45 | "userDefined": false 46 | } 47 | ], 48 | "isTemplate": false, 49 | "count": 0, 50 | "updated": 1525453968 51 | }, 52 | { 53 | "id": "c783e8e4-dc05-4f62-9408-c207b5b47d7c", 54 | "data": [ 55 | { 56 | "text": "Keynote at IO", 57 | "userDefined": false 58 | } 59 | ], 60 | "isTemplate": false, 61 | "count": 0, 62 | "updated": 1525453968 63 | }, 64 | { 65 | "id": "269aeaef-b1fe-4cbb-8e83-5e06eec09f76", 66 | "data": [ 67 | { 68 | "text": "I want to hear about the keynote", 69 | "userDefined": false 70 | } 71 | ], 72 | "isTemplate": false, 73 | "count": 1, 74 | "updated": 1525453968 75 | }, 76 | { 77 | "id": "1767fded-5855-4a02-843a-e847c8315f91", 78 | "data": [ 79 | { 80 | "text": "Information about the keynote", 81 | "userDefined": false 82 | } 83 | ], 84 | "isTemplate": false, 85 | "count": 1, 86 | "updated": 1525453968 87 | }, 88 | { 89 | "id": "d1f37ab0-cbe3-4517-a26f-ca5a9a34ad97", 90 | "data": [ 91 | { 92 | "text": "tell me about the keynote?", 93 | "userDefined": false 94 | } 95 | ], 96 | "isTemplate": false, 97 | "count": 1, 98 | "updated": 1525453968 99 | }, 100 | { 101 | "id": "f555a769-92aa-467c-8277-13de54846c90", 102 | "data": [ 103 | { 104 | "text": "keynote", 105 | "userDefined": false 106 | } 107 | ], 108 | "isTemplate": false, 109 | "count": 1, 110 | "updated": 1525453968 111 | }, 112 | { 113 | "id": "8ba48a75-91ac-4f1a-9664-7f3fc3af658b", 114 | "data": [ 115 | { 116 | "text": "what is the keynote?", 117 | "userDefined": false 118 | } 119 | ], 120 | "isTemplate": false, 121 | "count": 1, 122 | "updated": 1523565645 123 | } 124 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/lost-and-found.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "0ebf0ac8-ac12-4d9a-9b27-956746fe73a9", 3 | "name": "lost-and-found", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1526334899, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/lost-and-found_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "1b22158e-101a-4e86-80cf-9a18ff842e86", 4 | "data": [ 5 | { 6 | "text": "Tell me about lost and found", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1523648720 13 | }, 14 | { 15 | "id": "0642657b-36d0-4d28-9e5d-9e87697cd58e", 16 | "data": [ 17 | { 18 | "text": "Is there a lost and found?", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 1, 24 | "updated": 1523648720 25 | }, 26 | { 27 | "id": "27da5eae-1f8e-4053-bd9d-54f8bdccd6b7", 28 | "data": [ 29 | { 30 | "text": "Where can I return a missing item?", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1523648720 37 | }, 38 | { 39 | "id": "6e323c57-4615-4fc2-89b4-40bf96ee3e95", 40 | "data": [ 41 | { 42 | "text": "I misplaced my laptop, where can I find it?", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1523648720 49 | }, 50 | { 51 | "id": "567d7ac9-8b18-4935-a094-dec5dd12c592", 52 | "data": [ 53 | { 54 | "text": "I found a hat, where should I take it?", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1523648720 61 | }, 62 | { 63 | "id": "c8fc21a3-300f-4458-8ac4-59ce6b00a20f", 64 | "data": [ 65 | { 66 | "text": "where can I find lost and found?", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1523648720 73 | }, 74 | { 75 | "id": "5bb7e492-7d97-41e0-b93c-13478a78da02", 76 | "data": [ 77 | { 78 | "text": "I lost my phone", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1523648720 85 | } 86 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/menu.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "b96b197e-f059-43ee-aa9c-65a59150e583", 3 | "name": "menu", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1524518431, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/menu_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "d0b2bbae-ec8e-4799-9be2-d807362fbfdf", 4 | "data": [ 5 | { 6 | "text": "what can you tell me", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1524518431 13 | }, 14 | { 15 | "id": "0b813d3a-9055-432b-85e1-e01fe6cdd511", 16 | "data": [ 17 | { 18 | "text": "i need help", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1524518431 25 | }, 26 | { 27 | "id": "3440918c-e57e-43c3-a99f-ad92dd52ab74", 28 | "data": [ 29 | { 30 | "text": "what can you do", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1524518431 37 | }, 38 | { 39 | "id": "252793d7-15b5-4e2e-b3f2-09caf8305b89", 40 | "data": [ 41 | { 42 | "text": "help", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1524518431 49 | }, 50 | { 51 | "id": "efc805f3-24e7-41e1-bfc9-397e56ba31d4", 52 | "data": [ 53 | { 54 | "text": "something else", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1524518431 61 | }, 62 | { 63 | "id": "b7ddc9e7-46b9-4d96-960e-930f9beae438", 64 | "data": [ 65 | { 66 | "text": "Do something else", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 1524518431 73 | } 74 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/next-session-directions-sign-in.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "6850040b-5945-4526-99b0-b3db0802c313", 3 | "parentId": "637751ed-bca5-4537-9ec1-f74fe2134f86", 4 | "rootParentId": "637751ed-bca5-4537-9ec1-f74fe2134f86", 5 | "name": "next-session-directions-sign-in", 6 | "auto": true, 7 | "contexts": [ 8 | "next-session-directions-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "next-session-directions.next-session-directions-custom", 14 | "affectedContexts": [], 15 | "parameters": [], 16 | "messages": [ 17 | { 18 | "type": 0, 19 | "lang": "en", 20 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 21 | } 22 | ], 23 | "defaultResponsePlatforms": {}, 24 | "speech": [] 25 | } 26 | ], 27 | "priority": 500000, 28 | "webhookUsed": true, 29 | "webhookForSlotFilling": false, 30 | "lastUpdate": 1525804021, 31 | "fallbackIntent": false, 32 | "events": [ 33 | { 34 | "name": "actions_intent_SIGN_IN" 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/next-session-directions.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "637751ed-bca5-4537-9ec1-f74fe2134f86", 3 | "name": "next-session-directions", 4 | "auto": true, 5 | "contexts": [ 6 | "pre-or-during-io" 7 | ], 8 | "responses": [ 9 | { 10 | "resetContexts": false, 11 | "affectedContexts": [ 12 | { 13 | "name": "next-session-directions-followup", 14 | "parameters": {}, 15 | "lifespan": 2 16 | } 17 | ], 18 | "parameters": [], 19 | "messages": [ 20 | { 21 | "type": 0, 22 | "lang": "en", 23 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 24 | } 25 | ], 26 | "defaultResponsePlatforms": {}, 27 | "speech": [] 28 | } 29 | ], 30 | "priority": 500000, 31 | "webhookUsed": true, 32 | "webhookForSlotFilling": false, 33 | "lastUpdate": 1525993859, 34 | "fallbackIntent": false, 35 | "events": [] 36 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/next-session-directions_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "294a278d-3901-415d-b2e9-1f7bf3cdf98a", 4 | "data": [ 5 | { 6 | "text": "Find my next ", 7 | "userDefined": false 8 | }, 9 | { 10 | "text": "session", 11 | "meta": "@sys.ignore", 12 | "userDefined": false 13 | } 14 | ], 15 | "isTemplate": false, 16 | "count": 0, 17 | "updated": 1525803972 18 | }, 19 | { 20 | "id": "b7521ea7-81bd-47cb-b035-3fa835729baa", 21 | "data": [ 22 | { 23 | "text": "Get me to my next ", 24 | "userDefined": false 25 | }, 26 | { 27 | "text": "session", 28 | "meta": "@sys.ignore", 29 | "userDefined": false 30 | } 31 | ], 32 | "isTemplate": false, 33 | "count": 0, 34 | "updated": 1525803972 35 | }, 36 | { 37 | "id": "4546d941-e360-4941-a09a-1dc9c1d04ec5", 38 | "data": [ 39 | { 40 | "text": "Where\u0027s my next ", 41 | "userDefined": false 42 | }, 43 | { 44 | "text": "session", 45 | "meta": "@sys.ignore", 46 | "userDefined": false 47 | } 48 | ], 49 | "isTemplate": false, 50 | "count": 0, 51 | "updated": 1525803972 52 | } 53 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/no-input.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "40bd9420-6dc7-4df3-b613-8a186e9d4d36", 3 | "name": "no-input", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1524237768, 26 | "fallbackIntent": false, 27 | "events": [ 28 | { 29 | "name": "actions_intent_NO_INPUT" 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/popular-justice-songs.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "62555c67-8cda-4597-a3bd-58259ba9c3f6", 3 | "parentId": "8792a72a-5819-477a-9e18-1301e8e8c011", 4 | "rootParentId": "8792a72a-5819-477a-9e18-1301e8e8c011", 5 | "name": "popular-justice-songs", 6 | "auto": true, 7 | "contexts": [ 8 | "concert-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "concert.concert-custom", 14 | "affectedContexts": [], 15 | "parameters": [], 16 | "messages": [ 17 | { 18 | "type": 0, 19 | "lang": "en", 20 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 21 | } 22 | ], 23 | "defaultResponsePlatforms": {}, 24 | "speech": [] 25 | } 26 | ], 27 | "priority": 500000, 28 | "webhookUsed": true, 29 | "webhookForSlotFilling": false, 30 | "lastUpdate": 1525758632, 31 | "fallbackIntent": false, 32 | "events": [] 33 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/popular-justice-songs_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "3233d31d-2eb2-4e23-a65e-70686a6973f1", 4 | "data": [ 5 | { 6 | "text": "songs by justice", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525743365 13 | }, 14 | { 15 | "id": "811f4ae4-5d60-4bcb-812f-bd080148b61a", 16 | "data": [ 17 | { 18 | "text": "what are popular justice songs?", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525742789 25 | }, 26 | { 27 | "id": "5e4a610c-f0bf-4299-aeff-38cdcea8b791", 28 | "data": [ 29 | { 30 | "text": "what are some popular justice songs?", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525742789 37 | }, 38 | { 39 | "id": "d2ce9ab9-37cf-4d1c-879f-c37486df8e42", 40 | "data": [ 41 | { 42 | "text": "popular songs by justice", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1525742789 49 | }, 50 | { 51 | "id": "e70ec12a-be06-431c-a6a5-59eb7b4e64b2", 52 | "data": [ 53 | { 54 | "text": "Popular Justice songs", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1525742789 61 | } 62 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/popular-phantogram-songs.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "84a020c8-1fea-4218-addb-21e332c10062", 3 | "parentId": "8792a72a-5819-477a-9e18-1301e8e8c011", 4 | "rootParentId": "8792a72a-5819-477a-9e18-1301e8e8c011", 5 | "name": "popular-phantogram-songs", 6 | "auto": true, 7 | "contexts": [ 8 | "concert-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "concert.concert-custom", 14 | "affectedContexts": [], 15 | "parameters": [], 16 | "messages": [ 17 | { 18 | "type": 0, 19 | "lang": "en", 20 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 21 | } 22 | ], 23 | "defaultResponsePlatforms": {}, 24 | "speech": [] 25 | } 26 | ], 27 | "priority": 500000, 28 | "webhookUsed": true, 29 | "webhookForSlotFilling": false, 30 | "lastUpdate": 1525758643, 31 | "fallbackIntent": false, 32 | "events": [] 33 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/popular-phantogram-songs_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "545a00aa-f3f2-45cb-bc4c-3b8be4d4cace", 4 | "data": [ 5 | { 6 | "text": "songs by phantogram", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525743379 13 | }, 14 | { 15 | "id": "c09ee7d8-29fb-49b9-815e-c93185cee982", 16 | "data": [ 17 | { 18 | "text": "what are popular songs by phantogram?", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525742915 25 | }, 26 | { 27 | "id": "0d859491-8b40-4c82-87c6-80ec925ee886", 28 | "data": [ 29 | { 30 | "text": "what are some popular songs by phantogram?", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525742915 37 | }, 38 | { 39 | "id": "0a72fa75-0447-4682-99a9-e110832eabe8", 40 | "data": [ 41 | { 42 | "text": "Popular songs by phantogram", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1525742915 49 | } 50 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/relax-menu.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "3e237047-f8c3-453a-b93a-e9a592afa4cf", 3 | "name": "relax-menu", 4 | "auto": true, 5 | "contexts": [ 6 | "pre-or-during-io" 7 | ], 8 | "responses": [ 9 | { 10 | "resetContexts": false, 11 | "affectedContexts": [], 12 | "parameters": [], 13 | "messages": [ 14 | { 15 | "type": 0, 16 | "lang": "en", 17 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 18 | } 19 | ], 20 | "defaultResponsePlatforms": {}, 21 | "speech": [] 22 | } 23 | ], 24 | "priority": 500000, 25 | "webhookUsed": true, 26 | "webhookForSlotFilling": false, 27 | "lastUpdate": 1526959362, 28 | "fallbackIntent": false, 29 | "events": [] 30 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/relax-menu_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "f4c9be86-09a1-4b4d-aa73-bb43401f1483", 4 | "data": [ 5 | { 6 | "text": "kickback", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525391967 13 | }, 14 | { 15 | "id": "bed6092c-68f3-45a1-85eb-5103541fb7f2", 16 | "data": [ 17 | { 18 | "text": "kick back and relax", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525391967 25 | }, 26 | { 27 | "id": "370c0825-ea4e-46d9-b8f0-56b8a43923cc", 28 | "data": [ 29 | { 30 | "text": "kick back", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525391967 37 | }, 38 | { 39 | "id": "4d659611-ef43-4550-a824-d418e1d37ab7", 40 | "data": [ 41 | { 42 | "text": "relaxing", 43 | "meta": "@sys.ignore", 44 | "userDefined": false 45 | } 46 | ], 47 | "isTemplate": false, 48 | "count": 0, 49 | "updated": 1525390156 50 | }, 51 | { 52 | "id": "718a255d-3250-44cb-a11d-2c1b57e2f4f2", 53 | "data": [ 54 | { 55 | "text": "how can i relax", 56 | "userDefined": false 57 | } 58 | ], 59 | "isTemplate": false, 60 | "count": 0, 61 | "updated": 1525390156 62 | }, 63 | { 64 | "id": "94d503f1-ccc3-4e5c-a665-7e616367bfee", 65 | "data": [ 66 | { 67 | "text": "i want to relax", 68 | "userDefined": false 69 | } 70 | ], 71 | "isTemplate": false, 72 | "count": 0, 73 | "updated": 1525390156 74 | }, 75 | { 76 | "id": "8e0cf965-a046-477b-9532-cfa92aa7be4a", 77 | "data": [ 78 | { 79 | "text": "relax", 80 | "userDefined": false 81 | } 82 | ], 83 | "isTemplate": false, 84 | "count": 0, 85 | "updated": 1525390156 86 | } 87 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/scavenger-hunt.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "32c31253-4e9c-4fb7-ba1c-bcef9c5a83e8", 3 | "name": "scavenger-hunt", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1525758674, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/scavenger-hunt_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "7ef2336d-fe37-4db2-bd83-784cb1fd6131", 4 | "data": [ 5 | { 6 | "text": "tell me about the scavenger hunt", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525750219 13 | }, 14 | { 15 | "id": "da97312d-324c-4d7a-b949-cd827fc4fefa", 16 | "data": [ 17 | { 18 | "text": "is there a scavenger hunt", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525750219 25 | }, 26 | { 27 | "id": "2fac2c38-9b0c-411b-b69a-0a76ca271171", 28 | "data": [ 29 | { 30 | "text": "i want to hear more about the scavenger hunt", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525750219 37 | }, 38 | { 39 | "id": "5b9f76d9-85ce-498b-984e-1467a727a3fb", 40 | "data": [ 41 | { 42 | "text": "how do i join the scavenger hunt", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1525750219 49 | }, 50 | { 51 | "id": "1f7bb486-5b95-49f1-8f11-5cdeae951eca", 52 | "data": [ 53 | { 54 | "text": "when is the scavenger hunt", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1525750219 61 | }, 62 | { 63 | "id": "b4fc28de-996d-497e-81a2-8fddf83aaac8", 64 | "data": [ 65 | { 66 | "text": "where is the scavenger hunt", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 1525750219 73 | }, 74 | { 75 | "id": "951c7afc-dc41-4744-bf05-57afd91a5e70", 76 | "data": [ 77 | { 78 | "text": "how can i participate in the scavenger hunt", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 1525750219 85 | }, 86 | { 87 | "id": "fb3a783c-859b-450a-bd27-2d18ef7316a2", 88 | "data": [ 89 | { 90 | "text": "Scavenger hunt", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 0, 96 | "updated": 1525736562 97 | } 98 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/schedule-sign-in.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "d112ed68-eaa2-42ff-a4b1-fc54737bee98", 3 | "parentId": "30982b77-069d-4cde-9634-a46cddaaa295", 4 | "rootParentId": "30982b77-069d-4cde-9634-a46cddaaa295", 5 | "name": "schedule-sign-in", 6 | "auto": true, 7 | "contexts": [ 8 | "show-schedule-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "show-schedule.show-schedule-custom", 14 | "affectedContexts": [], 15 | "parameters": [], 16 | "messages": [ 17 | { 18 | "type": 0, 19 | "lang": "en", 20 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 21 | } 22 | ], 23 | "defaultResponsePlatforms": {}, 24 | "speech": [] 25 | } 26 | ], 27 | "priority": 500000, 28 | "webhookUsed": true, 29 | "webhookForSlotFilling": false, 30 | "lastUpdate": 1524386072, 31 | "fallbackIntent": false, 32 | "events": [ 33 | { 34 | "name": "actions_intent_SIGN_IN" 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-browse-topics-no.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "867efd3e-1955-4842-ad0a-3419a08682df", 3 | "parentId": "30982b77-069d-4cde-9634-a46cddaaa295", 4 | "rootParentId": "30982b77-069d-4cde-9634-a46cddaaa295", 5 | "name": "show-schedule-browse-topics-no", 6 | "auto": true, 7 | "contexts": [ 8 | "show-schedule-followup", 9 | "schedule-empty" 10 | ], 11 | "responses": [ 12 | { 13 | "resetContexts": false, 14 | "action": "show-schedule.show-schedule-no", 15 | "affectedContexts": [ 16 | { 17 | "name": "show-schedule-followup", 18 | "parameters": {}, 19 | "lifespan": 0 20 | }, 21 | { 22 | "name": "browse-sessions-followup", 23 | "parameters": {}, 24 | "lifespan": 0 25 | } 26 | ], 27 | "parameters": [], 28 | "messages": [ 29 | { 30 | "type": 0, 31 | "lang": "en", 32 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 33 | } 34 | ], 35 | "defaultResponsePlatforms": {}, 36 | "speech": [] 37 | } 38 | ], 39 | "priority": 500000, 40 | "webhookUsed": true, 41 | "webhookForSlotFilling": false, 42 | "lastUpdate": 1524446331, 43 | "fallbackIntent": false, 44 | "events": [] 45 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-browse-topics-no_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "ec0881a1-9dd4-4950-afc0-e5ce884807bc", 4 | "data": [ 5 | { 6 | "text": "not now", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1524441819 13 | }, 14 | { 15 | "id": "43daa688-c1b5-43d4-a597-010e1498576b", 16 | "data": [ 17 | { 18 | "text": "I don\u0027t want that", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1524441819 25 | }, 26 | { 27 | "id": "1068ee8a-0565-447d-ae0a-9b8924b51a98", 28 | "data": [ 29 | { 30 | "text": "don\u0027t do it", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1524441819 37 | }, 38 | { 39 | "id": "c07eda9a-9129-46e5-84e1-5b7e922ae388", 40 | "data": [ 41 | { 42 | "text": "I disagree", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 2, 48 | "updated": 1524441819 49 | }, 50 | { 51 | "id": "d12466b4-ff69-44d4-aab6-018a48f548af", 52 | "data": [ 53 | { 54 | "text": "I don\u0027t think so", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1524441819 61 | }, 62 | { 63 | "id": "f3dccaa3-d1ac-42b5-b9cb-8de58a2a943f", 64 | "data": [ 65 | { 66 | "text": "not really", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 1524441819 73 | }, 74 | { 75 | "id": "7f0766fb-2d15-45c1-b1db-25d566a13f2c", 76 | "data": [ 77 | { 78 | "text": "not interested", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 1524441819 85 | }, 86 | { 87 | "id": "17d46a9f-04c2-4630-964b-906d15343660", 88 | "data": [ 89 | { 90 | "text": "definitely not", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 1, 96 | "updated": 1524441819 97 | }, 98 | { 99 | "id": "14680213-91e8-4751-917a-880677c96037", 100 | "data": [ 101 | { 102 | "text": "no", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 1524441819 109 | } 110 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-browse-topics-yes.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "6cb52c64-f6ba-47ad-9b89-c12c2543eeca", 3 | "parentId": "30982b77-069d-4cde-9634-a46cddaaa295", 4 | "rootParentId": "30982b77-069d-4cde-9634-a46cddaaa295", 5 | "name": "show-schedule-browse-topics-yes", 6 | "auto": true, 7 | "contexts": [ 8 | "show-schedule-followup", 9 | "schedule-empty" 10 | ], 11 | "responses": [ 12 | { 13 | "resetContexts": false, 14 | "action": "show-schedule.show-schedule-yes", 15 | "affectedContexts": [ 16 | { 17 | "name": "show-schedule-followup", 18 | "parameters": {}, 19 | "lifespan": 0 20 | }, 21 | { 22 | "name": "show-session-followup", 23 | "parameters": {}, 24 | "lifespan": 0 25 | } 26 | ], 27 | "parameters": [], 28 | "messages": [ 29 | { 30 | "type": 0, 31 | "lang": "en", 32 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 33 | } 34 | ], 35 | "defaultResponsePlatforms": {}, 36 | "speech": [] 37 | } 38 | ], 39 | "priority": 500000, 40 | "webhookUsed": true, 41 | "webhookForSlotFilling": false, 42 | "lastUpdate": 1524446297, 43 | "fallbackIntent": false, 44 | "events": [] 45 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-browse-topics-yes_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "9681e6c6-7b84-45af-ab8a-8dd962186250", 4 | "data": [ 5 | { 6 | "text": "confirm", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 0 13 | }, 14 | { 15 | "id": "7e21f655-342d-41da-9b95-b6ee1da60da6", 16 | "data": [ 17 | { 18 | "text": "okay", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1505507989 25 | }, 26 | { 27 | "id": "ed3a4aca-35fb-4e86-bc2a-6f736fa3b798", 28 | "data": [ 29 | { 30 | "text": "ok", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1505507989 37 | }, 38 | { 39 | "id": "541b7390-203d-4b90-ad9e-2d4a458887db", 40 | "data": [ 41 | { 42 | "text": "of course", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 0 49 | }, 50 | { 51 | "id": "17dc04a4-22bd-48ed-805a-13a76a1cb672", 52 | "data": [ 53 | { 54 | "text": "sure", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 2, 60 | "updated": 0 61 | }, 62 | { 63 | "id": "ee755b7e-f98d-4812-95c1-2ff6607ef1c0", 64 | "data": [ 65 | { 66 | "text": "I don\u0027t mind", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 0 73 | }, 74 | { 75 | "id": "2f6eaf21-d8cd-4a6a-87ff-c19fd72490d4", 76 | "data": [ 77 | { 78 | "text": "yes", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 0 85 | }, 86 | { 87 | "id": "835bc593-05b5-4728-9108-bb8fc0961d32", 88 | "data": [ 89 | { 90 | "text": "that\u0027s correct", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 0, 96 | "updated": 0 97 | }, 98 | { 99 | "id": "8c5eaa8c-93ef-4bc3-bbcc-d83891e97c0a", 100 | "data": [ 101 | { 102 | "text": "I agree", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 1, 108 | "updated": 0 109 | }, 110 | { 111 | "id": "eb1287b1-a33c-4b58-b8e7-acb194bffdeb", 112 | "data": [ 113 | { 114 | "text": "do it", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 0 121 | }, 122 | { 123 | "id": "6fba3b54-73c7-481f-9fe6-1379002cc394", 124 | "data": [ 125 | { 126 | "text": "exactly", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 0, 132 | "updated": 0 133 | }, 134 | { 135 | "id": "e3c0b3ed-d8c7-4726-bd98-d8909604290e", 136 | "data": [ 137 | { 138 | "text": "sounds good", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 0, 144 | "updated": 0 145 | } 146 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-next.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "7c4d0cd7-4e7f-471e-849a-599989b4681d", 3 | "parentId": "30982b77-069d-4cde-9634-a46cddaaa295", 4 | "rootParentId": "30982b77-069d-4cde-9634-a46cddaaa295", 5 | "name": "show-schedule-next", 6 | "auto": true, 7 | "contexts": [ 8 | "show-schedule-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "show-schedule.show-schedule-next", 14 | "affectedContexts": [ 15 | { 16 | "name": "show-session-followup", 17 | "parameters": {}, 18 | "lifespan": 3 19 | } 20 | ], 21 | "parameters": [], 22 | "messages": [ 23 | { 24 | "type": 0, 25 | "lang": "en", 26 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 27 | } 28 | ], 29 | "defaultResponsePlatforms": {}, 30 | "speech": [] 31 | } 32 | ], 33 | "priority": 500000, 34 | "webhookUsed": true, 35 | "webhookForSlotFilling": false, 36 | "lastUpdate": 1524541266, 37 | "fallbackIntent": false, 38 | "events": [] 39 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-next_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "a9462e3e-996c-465b-b245-f8868c45158d", 4 | "data": [ 5 | { 6 | "text": "what else?", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1524443226 13 | }, 14 | { 15 | "id": "b42c58a3-530b-42b5-b691-bf0f5263035b", 16 | "data": [ 17 | { 18 | "text": "what\u0027s next?", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1524443226 25 | }, 26 | { 27 | "id": "985fdfe9-840c-445a-9dc6-5e5765d4c81a", 28 | "data": [ 29 | { 30 | "text": "none of those", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1524443226 37 | }, 38 | { 39 | "id": "1deea6f8-a688-40ae-b2ef-3e467f8ed56d", 40 | "data": [ 41 | { 42 | "text": "what about after that", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1524443226 49 | }, 50 | { 51 | "id": "63abbf67-d95e-4e34-9bc5-29a22939da60", 52 | "data": [ 53 | { 54 | "text": "show me the following results", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1524443226 61 | }, 62 | { 63 | "id": "840f463d-b360-4017-8989-3c09f739f500", 64 | "data": [ 65 | { 66 | "text": "next page", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 1524443226 73 | }, 74 | { 75 | "id": "01053f80-35ff-45a0-90fa-3b41c25881b9", 76 | "data": [ 77 | { 78 | "text": "go to the next page", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 1524443226 85 | }, 86 | { 87 | "id": "e5360f2e-874d-4535-ae19-96f24dca5692", 88 | "data": [ 89 | { 90 | "text": "switch to the next", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 0, 96 | "updated": 1524443226 97 | }, 98 | { 99 | "id": "a5498f5e-d174-452a-bd6e-1d4625f80ded", 100 | "data": [ 101 | { 102 | "text": "show me the next page", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 0, 108 | "updated": 1524443226 109 | }, 110 | { 111 | "id": "e7205ac6-ef49-40c9-a874-7de7ec6d17e0", 112 | "data": [ 113 | { 114 | "text": "read the next results", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 0, 120 | "updated": 1524443226 121 | }, 122 | { 123 | "id": "b3d97b33-2026-49ae-b6b1-f9fca0b123b4", 124 | "data": [ 125 | { 126 | "text": "following result", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 0, 132 | "updated": 1524443226 133 | }, 134 | { 135 | "id": "1c293959-14b9-4938-8f02-9d87c82a5cb6", 136 | "data": [ 137 | { 138 | "text": "go forward", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 0, 144 | "updated": 1524443226 145 | }, 146 | { 147 | "id": "1243e967-f6e3-4692-94d7-ffa58ddf7ae5", 148 | "data": [ 149 | { 150 | "text": "next", 151 | "userDefined": false 152 | } 153 | ], 154 | "isTemplate": false, 155 | "count": 0, 156 | "updated": 1524443226 157 | }, 158 | { 159 | "id": "0b0726a4-8c42-474e-a438-3420da1e41de", 160 | "data": [ 161 | { 162 | "text": "show me next", 163 | "userDefined": false 164 | } 165 | ], 166 | "isTemplate": false, 167 | "count": 0, 168 | "updated": 1524443226 169 | } 170 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-repeat.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "e6607b8d-1594-43c0-8a5c-0dddb0162fc1", 3 | "parentId": "30982b77-069d-4cde-9634-a46cddaaa295", 4 | "rootParentId": "30982b77-069d-4cde-9634-a46cddaaa295", 5 | "name": "show-schedule-repeat", 6 | "auto": true, 7 | "contexts": [ 8 | "show-schedule-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "show-schedule.show-schedule-repeat", 14 | "affectedContexts": [ 15 | { 16 | "name": "show-schedule-followup", 17 | "parameters": {}, 18 | "lifespan": 3 19 | } 20 | ], 21 | "parameters": [], 22 | "messages": [ 23 | { 24 | "type": 0, 25 | "lang": "en", 26 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 27 | } 28 | ], 29 | "defaultResponsePlatforms": {}, 30 | "speech": [] 31 | } 32 | ], 33 | "priority": 500000, 34 | "webhookUsed": true, 35 | "webhookForSlotFilling": false, 36 | "lastUpdate": 1524541288, 37 | "fallbackIntent": false, 38 | "events": [] 39 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-repeat_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "32de2b20-61db-42d6-925c-c348f7956eed", 4 | "data": [ 5 | { 6 | "text": "repeat", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 0 13 | }, 14 | { 15 | "id": "895f464c-c101-4509-a868-305d8d76f650", 16 | "data": [ 17 | { 18 | "text": "repeat it", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 0 25 | }, 26 | { 27 | "id": "bbc12b18-0bb9-4450-a101-20eb0ad00cf1", 28 | "data": [ 29 | { 30 | "text": "could you repeat that", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 0 37 | }, 38 | { 39 | "id": "1a0a71bf-ba8c-4af4-90fd-c79ee3c73979", 40 | "data": [ 41 | { 42 | "text": "do it again", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 0 49 | }, 50 | { 51 | "id": "d4907226-bcab-4a4c-ac00-2d6160906dc0", 52 | "data": [ 53 | { 54 | "text": "repeat these results", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 0 61 | }, 62 | { 63 | "id": "48f1f595-f832-4c20-a115-3ab85355cd9a", 64 | "data": [ 65 | { 66 | "text": "say the same again", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 0 73 | }, 74 | { 75 | "id": "450a75a5-1e66-402b-b841-5cb4e98dfb93", 76 | "data": [ 77 | { 78 | "text": "repeat what you\u0027ve just said", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 0 85 | }, 86 | { 87 | "id": "8bec19e8-b717-420e-a6b0-1dcccef0c31c", 88 | "data": [ 89 | { 90 | "text": "come again", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 0, 96 | "updated": 0 97 | }, 98 | { 99 | "id": "1bec2e32-daec-4ae8-9100-dd3ac832c5a2", 100 | "data": [ 101 | { 102 | "text": "say it again", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 0, 108 | "updated": 0 109 | }, 110 | { 111 | "id": "a1417c14-3ec7-46fb-968c-c3004c10f3bc", 112 | "data": [ 113 | { 114 | "text": "please repeat that", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 0, 120 | "updated": 0 121 | } 122 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-session-directions.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "c39ede76-e3aa-44f7-9995-d5c9f03f4936", 3 | "parentId": "211730b7-0419-4e5f-a612-82f1efab70d0", 4 | "rootParentId": "30982b77-069d-4cde-9634-a46cddaaa295", 5 | "name": "show-schedule-session-directions", 6 | "auto": true, 7 | "contexts": [ 8 | "show-schedule-session-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "show-schedule.show-schedule-custom.show-schedule-session-custom", 14 | "affectedContexts": [], 15 | "parameters": [], 16 | "messages": [ 17 | { 18 | "type": 0, 19 | "lang": "en", 20 | "speech": [] 21 | } 22 | ], 23 | "defaultResponsePlatforms": {}, 24 | "speech": [] 25 | } 26 | ], 27 | "priority": 500000, 28 | "webhookUsed": true, 29 | "webhookForSlotFilling": false, 30 | "lastUpdate": 1525767721, 31 | "fallbackIntent": false, 32 | "events": [] 33 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-session-directions_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "49cd72eb-3eec-4f3c-912e-3b6aaa696a42", 4 | "data": [ 5 | { 6 | "text": "directions", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525767721 13 | }, 14 | { 15 | "id": "4311f90d-15a6-40e3-9a12-52147f407760", 16 | "data": [ 17 | { 18 | "text": "get directions", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525767721 25 | } 26 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-session-repeat.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "7396fe94-25fc-4379-ae04-6c6d73326268", 3 | "parentId": "211730b7-0419-4e5f-a612-82f1efab70d0", 4 | "rootParentId": "30982b77-069d-4cde-9634-a46cddaaa295", 5 | "name": "show-schedule-session-repeat", 6 | "auto": true, 7 | "contexts": [ 8 | "show-schedule-session-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "show-schedule.show-schedule-custom.show-schedule-session-repeat", 14 | "affectedContexts": [], 15 | "parameters": [], 16 | "messages": [ 17 | { 18 | "type": 0, 19 | "lang": "en", 20 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 21 | } 22 | ], 23 | "defaultResponsePlatforms": {}, 24 | "speech": [] 25 | } 26 | ], 27 | "priority": 500000, 28 | "webhookUsed": true, 29 | "webhookForSlotFilling": false, 30 | "lastUpdate": 1524543185, 31 | "fallbackIntent": false, 32 | "events": [] 33 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-session-repeat_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "439e0bd7-1fd6-435b-870c-5cf09e291203", 4 | "data": [ 5 | { 6 | "text": "what was that", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1524543185 13 | }, 14 | { 15 | "id": "44db151f-cdf1-432c-8f77-fbe12e628f84", 16 | "data": [ 17 | { 18 | "text": "can you say it again", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1524543185 25 | }, 26 | { 27 | "id": "1be96648-645b-421a-b0ab-a971f449be11", 28 | "data": [ 29 | { 30 | "text": "can you repeat the description", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1524543185 37 | }, 38 | { 39 | "id": "8b3d5ed3-3439-4350-b9ba-bf6385a823f6", 40 | "data": [ 41 | { 42 | "text": "say it again", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1524543185 49 | }, 50 | { 51 | "id": "7c825ee8-c14a-4573-acad-be1a40faadcc", 52 | "data": [ 53 | { 54 | "text": "what?", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1524543185 61 | }, 62 | { 63 | "id": "22fbf31c-c5c6-4078-9449-8e5ec8c16bd1", 64 | "data": [ 65 | { 66 | "text": "repeat", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 1524543185 73 | }, 74 | { 75 | "id": "ed9145ad-71a6-419c-8cb5-ee0f0699090a", 76 | "data": [ 77 | { 78 | "text": "repeat it", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 1524543185 85 | }, 86 | { 87 | "id": "b8ed0a4a-860a-4da4-93d6-9dc42f5994f0", 88 | "data": [ 89 | { 90 | "text": "could you repeat that", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 0, 96 | "updated": 1524543185 97 | }, 98 | { 99 | "id": "6d93789c-8411-4cc2-8f76-9b0098399bcc", 100 | "data": [ 101 | { 102 | "text": "do it again", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 0, 108 | "updated": 1524543185 109 | }, 110 | { 111 | "id": "f39b7146-fc11-4314-b6a0-a52ce10f22fe", 112 | "data": [ 113 | { 114 | "text": "repeat these results", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 0, 120 | "updated": 1524543185 121 | }, 122 | { 123 | "id": "95fc172b-000f-4962-aed9-1149678c3d53", 124 | "data": [ 125 | { 126 | "text": "say the same again", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 0, 132 | "updated": 1524543185 133 | }, 134 | { 135 | "id": "e9e5aa56-6edd-422f-b645-fcfa201513a4", 136 | "data": [ 137 | { 138 | "text": "repeat what you\u0027ve just said", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 0, 144 | "updated": 1524543185 145 | }, 146 | { 147 | "id": "b67662b7-5822-4a5e-94b6-2c574829f5d2", 148 | "data": [ 149 | { 150 | "text": "come again", 151 | "userDefined": false 152 | } 153 | ], 154 | "isTemplate": false, 155 | "count": 1, 156 | "updated": 1524543185 157 | }, 158 | { 159 | "id": "8041d35d-8da4-43dd-aa84-ed05a82619ff", 160 | "data": [ 161 | { 162 | "text": "please repeat that", 163 | "userDefined": false 164 | } 165 | ], 166 | "isTemplate": false, 167 | "count": 0, 168 | "updated": 1524543185 169 | } 170 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-session.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "211730b7-0419-4e5f-a612-82f1efab70d0", 3 | "parentId": "30982b77-069d-4cde-9634-a46cddaaa295", 4 | "rootParentId": "30982b77-069d-4cde-9634-a46cddaaa295", 5 | "name": "show-schedule-session", 6 | "auto": true, 7 | "contexts": [ 8 | "show-schedule-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "show-schedule.show-schedule-custom", 14 | "affectedContexts": [ 15 | { 16 | "name": "show-schedule-session-followup", 17 | "parameters": {}, 18 | "lifespan": 3 19 | }, 20 | { 21 | "name": "show-schedule-followup", 22 | "parameters": {}, 23 | "lifespan": 0 24 | } 25 | ], 26 | "parameters": [ 27 | { 28 | "id": "f96e8398-fce0-4011-9064-cc1d29c413eb", 29 | "required": false, 30 | "dataType": "@ordinal-choice", 31 | "name": "ordinalChoice", 32 | "value": "$ordinalChoice", 33 | "isList": false 34 | }, 35 | { 36 | "id": "20e6990d-584c-495b-980b-6c90ff42adda", 37 | "required": false, 38 | "dataType": "@sessions", 39 | "name": "sessions", 40 | "value": "$sessions", 41 | "isList": false 42 | } 43 | ], 44 | "messages": [ 45 | { 46 | "type": 0, 47 | "lang": "en", 48 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 49 | } 50 | ], 51 | "defaultResponsePlatforms": {}, 52 | "speech": [] 53 | } 54 | ], 55 | "priority": 500000, 56 | "webhookUsed": true, 57 | "webhookForSlotFilling": false, 58 | "lastUpdate": 1524605162, 59 | "fallbackIntent": false, 60 | "events": [ 61 | { 62 | "name": "actions_intent_OPTION" 63 | } 64 | ] 65 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule-session_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "3b36e463-9008-49c5-a6b7-189b57ccb6ea", 4 | "data": [ 5 | { 6 | "text": "Android Security and Privacy", 7 | "alias": "sessions", 8 | "meta": "@sessions", 9 | "userDefined": false 10 | } 11 | ], 12 | "isTemplate": false, 13 | "count": 0, 14 | "updated": 1524543032 15 | }, 16 | { 17 | "id": "88be8e71-d4ac-4695-a3c7-38bbc12e8858", 18 | "data": [ 19 | { 20 | "text": "the first one", 21 | "alias": "ordinalChoice", 22 | "meta": "@ordinal-choice", 23 | "userDefined": false 24 | } 25 | ], 26 | "isTemplate": false, 27 | "count": 0, 28 | "updated": 1524605108 29 | }, 30 | { 31 | "id": "81244037-d235-49da-90da-3f488c61ff2e", 32 | "data": [ 33 | { 34 | "text": "let\u0027s do ", 35 | "userDefined": false 36 | }, 37 | { 38 | "text": "the second one", 39 | "alias": "ordinalChoice", 40 | "meta": "@ordinal-choice", 41 | "userDefined": false 42 | } 43 | ], 44 | "isTemplate": false, 45 | "count": 0, 46 | "updated": 1524605108 47 | }, 48 | { 49 | "id": "f62a8831-2212-4dfc-abf4-b6edd12e7469", 50 | "data": [ 51 | { 52 | "text": "yes", 53 | "userDefined": false 54 | } 55 | ], 56 | "isTemplate": false, 57 | "count": 0, 58 | "updated": 1524605108 59 | }, 60 | { 61 | "id": "467fb547-0b9c-4ee9-956f-eae735280d3c", 62 | "data": [ 63 | { 64 | "text": "yep", 65 | "userDefined": false 66 | } 67 | ], 68 | "isTemplate": false, 69 | "count": 0, 70 | "updated": 1524605108 71 | }, 72 | { 73 | "id": "e1beabc2-2f71-4b09-bc97-0ed249620122", 74 | "data": [ 75 | { 76 | "text": "why not", 77 | "userDefined": false 78 | } 79 | ], 80 | "isTemplate": false, 81 | "count": 0, 82 | "updated": 1524605108 83 | }, 84 | { 85 | "id": "a79381a0-9daf-4e98-8d7c-f08f4e4418b7", 86 | "data": [ 87 | { 88 | "text": "sure", 89 | "userDefined": false 90 | } 91 | ], 92 | "isTemplate": false, 93 | "count": 0, 94 | "updated": 1524605108 95 | } 96 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "30982b77-069d-4cde-9634-a46cddaaa295", 3 | "name": "show-schedule", 4 | "auto": true, 5 | "contexts": [ 6 | "pre-or-during-io" 7 | ], 8 | "responses": [ 9 | { 10 | "resetContexts": false, 11 | "affectedContexts": [ 12 | { 13 | "name": "show-schedule-followup", 14 | "parameters": {}, 15 | "lifespan": 3 16 | }, 17 | { 18 | "name": "browse-sessions-followup", 19 | "parameters": {}, 20 | "lifespan": 0 21 | }, 22 | { 23 | "name": "browse-topics-followup", 24 | "parameters": {}, 25 | "lifespan": 0 26 | } 27 | ], 28 | "parameters": [], 29 | "messages": [ 30 | { 31 | "type": 0, 32 | "lang": "en", 33 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 34 | } 35 | ], 36 | "defaultResponsePlatforms": {}, 37 | "speech": [] 38 | } 39 | ], 40 | "priority": 500000, 41 | "webhookUsed": true, 42 | "webhookForSlotFilling": false, 43 | "lastUpdate": 1525993883, 44 | "fallbackIntent": false, 45 | "events": [] 46 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-schedule_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "4e80b107-7d7d-40af-a85c-d8d7f8abacb3", 4 | "data": [ 5 | { 6 | "text": "back to my schedule", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1524548499 13 | }, 14 | { 15 | "id": "c6587bce-c40e-43f6-9239-2ca852124486", 16 | "data": [ 17 | { 18 | "text": "what did i sign up for", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1524548499 25 | }, 26 | { 27 | "id": "d9dcde79-2ef5-42f8-8c07-2243fa687466", 28 | "data": [ 29 | { 30 | "text": "manage viewing schedule", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1524548499 37 | }, 38 | { 39 | "id": "a0ee6dca-7531-4e41-ad27-4fd6b4d08d92", 40 | "data": [ 41 | { 42 | "text": "viewing schedule", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1524548499 49 | }, 50 | { 51 | "id": "ab9661b6-1ae2-4ef8-acb4-ec1d95b14d38", 52 | "data": [ 53 | { 54 | "text": "my schedule", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1524548499 61 | }, 62 | { 63 | "id": "b423f610-6bfd-4782-8bd5-7edb969e6153", 64 | "data": [ 65 | { 66 | "text": "whats on my schedule", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 0, 72 | "updated": 1524548499 73 | }, 74 | { 75 | "id": "4571c159-4b13-4133-a3ee-40d90f350294", 76 | "data": [ 77 | { 78 | "text": "manage my schedule", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 1524548499 85 | } 86 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-session-directions.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "83e461f1-49bc-4ea5-b39a-01c41c62d529", 3 | "parentId": "ab9b8005-6468-4242-a630-e6124fbf2bcd", 4 | "rootParentId": "52028621-a35e-400a-ae17-1d8068b50031", 5 | "name": "show-session-directions", 6 | "auto": true, 7 | "contexts": [ 8 | "show-session-followup", 9 | "show-session-followup-2" 10 | ], 11 | "responses": [ 12 | { 13 | "resetContexts": false, 14 | "action": "browse-sessions.browse-sessions-custom.show-session-custom", 15 | "affectedContexts": [], 16 | "parameters": [], 17 | "messages": [ 18 | { 19 | "type": 0, 20 | "lang": "en", 21 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 22 | } 23 | ], 24 | "defaultResponsePlatforms": {}, 25 | "speech": [] 26 | } 27 | ], 28 | "priority": 500000, 29 | "webhookUsed": true, 30 | "webhookForSlotFilling": false, 31 | "lastUpdate": 1525758764, 32 | "fallbackIntent": false, 33 | "events": [] 34 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-session-directions_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "74f07d41-6766-4bbd-bbe9-b0d6f6619656", 4 | "data": [ 5 | { 6 | "text": "how do i get there?", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525758544 13 | }, 14 | { 15 | "id": "b6d2153a-7beb-485d-abb8-23f3f3c4eb3f", 16 | "data": [ 17 | { 18 | "text": "find me directions", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525758544 25 | }, 26 | { 27 | "id": "38abe3b0-e772-4c7a-84fa-c32b36ebdab8", 28 | "data": [ 29 | { 30 | "text": "get me there", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525758544 37 | }, 38 | { 39 | "id": "486bd723-8d4e-4d4d-a712-dededd2cfd3a", 40 | "data": [ 41 | { 42 | "text": "directions", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1525758544 49 | }, 50 | { 51 | "id": "88907b82-cfe3-4330-8a13-0051da0f2b87", 52 | "data": [ 53 | { 54 | "text": "Get directions", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 0, 60 | "updated": 1525758544 61 | } 62 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-session-repeat.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "12c16383-8c12-4b86-9457-bc0a02ae2c15", 3 | "parentId": "ab9b8005-6468-4242-a630-e6124fbf2bcd", 4 | "rootParentId": "52028621-a35e-400a-ae17-1d8068b50031", 5 | "name": "show-session-repeat", 6 | "auto": true, 7 | "contexts": [ 8 | "show-session-followup" 9 | ], 10 | "responses": [ 11 | { 12 | "resetContexts": false, 13 | "action": "browse-sessions.browse-sessions-custom.show-session-custom", 14 | "affectedContexts": [], 15 | "parameters": [], 16 | "messages": [ 17 | { 18 | "type": 0, 19 | "lang": "en", 20 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 21 | } 22 | ], 23 | "defaultResponsePlatforms": {}, 24 | "speech": [] 25 | } 26 | ], 27 | "priority": 500000, 28 | "webhookUsed": true, 29 | "webhookForSlotFilling": false, 30 | "lastUpdate": 1524237549, 31 | "fallbackIntent": false, 32 | "events": [] 33 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-session-repeat_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "4793a3fc-d03f-4284-8f25-9fba1a0e94d9", 4 | "data": [ 5 | { 6 | "text": "repeat it", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 0 13 | }, 14 | { 15 | "id": "4019fcc4-574e-4c6f-aef1-74843216e4d1", 16 | "data": [ 17 | { 18 | "text": "say it again", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 1, 24 | "updated": 1523952146 25 | }, 26 | { 27 | "id": "0e42daa4-e7c4-44b3-9aaf-a5a037859a14", 28 | "data": [ 29 | { 30 | "text": "what?", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1523952146 37 | }, 38 | { 39 | "id": "4b347685-3216-4c12-848a-9c7fd2e08f59", 40 | "data": [ 41 | { 42 | "text": "can you repeat the description", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1523952146 49 | }, 50 | { 51 | "id": "c5ee82e5-b944-4ecf-a806-2bcf8491a0ae", 52 | "data": [ 53 | { 54 | "text": "can you say it again", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1523952146 61 | }, 62 | { 63 | "id": "4cfc3bb5-287b-4efd-8965-fa5001e1ca96", 64 | "data": [ 65 | { 66 | "text": "what was that", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1523952146 73 | }, 74 | { 75 | "id": "7dc8c4cd-afea-4aca-8042-a95047f1f446", 76 | "data": [ 77 | { 78 | "text": "repeat", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 1, 84 | "updated": 1523952146 85 | } 86 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-session.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "ab9b8005-6468-4242-a630-e6124fbf2bcd", 3 | "parentId": "52028621-a35e-400a-ae17-1d8068b50031", 4 | "rootParentId": "52028621-a35e-400a-ae17-1d8068b50031", 5 | "name": "show-session", 6 | "auto": true, 7 | "contexts": [ 8 | "browse-sessions-followup", 9 | "type-checked" 10 | ], 11 | "responses": [ 12 | { 13 | "resetContexts": false, 14 | "action": "browse-sessions.browse-sessions-custom", 15 | "affectedContexts": [ 16 | { 17 | "name": "show-session-followup", 18 | "parameters": {}, 19 | "lifespan": 3 20 | }, 21 | { 22 | "name": "browse-sessions-followup", 23 | "parameters": {}, 24 | "lifespan": 0 25 | }, 26 | { 27 | "name": "show-session-followup-2", 28 | "parameters": {}, 29 | "lifespan": 2 30 | } 31 | ], 32 | "parameters": [ 33 | { 34 | "id": "5095a2a2-4496-4f4e-ba8b-291953a89b69", 35 | "required": false, 36 | "dataType": "@ordinal-choice", 37 | "name": "ordinalChoice", 38 | "value": "$ordinalChoice", 39 | "isList": false 40 | }, 41 | { 42 | "id": "621c586b-5340-4566-b3c1-7140ba85655a", 43 | "required": false, 44 | "dataType": "@sessions", 45 | "name": "sessionId", 46 | "value": "$sessionId", 47 | "isList": false 48 | } 49 | ], 50 | "messages": [ 51 | { 52 | "type": 0, 53 | "lang": "en", 54 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 55 | } 56 | ], 57 | "defaultResponsePlatforms": {}, 58 | "speech": [] 59 | } 60 | ], 61 | "priority": 500000, 62 | "webhookUsed": true, 63 | "webhookForSlotFilling": false, 64 | "lastUpdate": 1524677381, 65 | "fallbackIntent": false, 66 | "events": [ 67 | { 68 | "name": "actions_intent_OPTION" 69 | } 70 | ] 71 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/show-session_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "670372c5-f8ae-4fe5-b7ac-0be66a455635", 4 | "data": [ 5 | { 6 | "text": "sure", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1524518838 13 | }, 14 | { 15 | "id": "9bfe422d-37df-46a2-ae85-a5580edf793f", 16 | "data": [ 17 | { 18 | "text": "Android Security and Privacy", 19 | "alias": "sessionId", 20 | "meta": "@sessions", 21 | "userDefined": false 22 | } 23 | ], 24 | "isTemplate": false, 25 | "count": 1, 26 | "updated": 1523951847 27 | }, 28 | { 29 | "id": "24b3f84e-5b10-4d04-acf1-71ece0723b7b", 30 | "data": [ 31 | { 32 | "text": "why not", 33 | "userDefined": false 34 | } 35 | ], 36 | "isTemplate": false, 37 | "count": 1, 38 | "updated": 1523951118 39 | }, 40 | { 41 | "id": "3bdb75b6-e5e9-42e1-87a0-3e16ecaff162", 42 | "data": [ 43 | { 44 | "text": "yep", 45 | "userDefined": false 46 | } 47 | ], 48 | "isTemplate": false, 49 | "count": 1, 50 | "updated": 1523951118 51 | }, 52 | { 53 | "id": "3bbc2cfe-7e65-4ce2-a477-7571755bc954", 54 | "data": [ 55 | { 56 | "text": "yes", 57 | "userDefined": false 58 | } 59 | ], 60 | "isTemplate": false, 61 | "count": 1, 62 | "updated": 1523951118 63 | }, 64 | { 65 | "id": "756d3a19-aa6c-4790-af4c-2f05e120f51e", 66 | "data": [ 67 | { 68 | "text": "let\u0027s do ", 69 | "userDefined": false 70 | }, 71 | { 72 | "text": "the second one", 73 | "alias": "ordinalChoice", 74 | "meta": "@ordinal-choice", 75 | "userDefined": false 76 | } 77 | ], 78 | "isTemplate": false, 79 | "count": 1, 80 | "updated": 1523951847 81 | }, 82 | { 83 | "id": "7b4e3559-e995-472b-a76d-617115b3e40c", 84 | "data": [ 85 | { 86 | "text": "the first one", 87 | "alias": "ordinalChoice", 88 | "meta": "@ordinal-choice", 89 | "userDefined": false 90 | } 91 | ], 92 | "isTemplate": false, 93 | "count": 1, 94 | "updated": 1523951847 95 | } 96 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/swag.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "b4d37a31-fc6c-423d-8c18-adfa714653b0", 3 | "name": "swag", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1526959318, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/swag_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "2049c5f7-bf6b-489a-abea-6f64562a244e", 4 | "data": [ 5 | { 6 | "text": "what was the swag", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1526959318 13 | }, 14 | { 15 | "id": "2eebe0d3-2aa2-4c4b-9c60-1dd66d856c83", 16 | "data": [ 17 | { 18 | "text": "whats the swag?", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1526959318 25 | }, 26 | { 27 | "id": "324369d6-0454-4335-aa67-8cd75fb49dfa", 28 | "data": [ 29 | { 30 | "text": "What\u0027s the swag?", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1526959318 37 | }, 38 | { 39 | "id": "a620ed6a-a39c-4669-915d-3b65b1dda0c8", 40 | "data": [ 41 | { 42 | "text": "swag", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1526959318 49 | }, 50 | { 51 | "id": "aafcc1cf-331c-4fa1-a136-7ab225a291a9", 52 | "data": [ 53 | { 54 | "text": "What is the swag?", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1526959318 61 | }, 62 | { 63 | "id": "79fa0ba6-aec8-4329-8d44-41829d1752dd", 64 | "data": [ 65 | { 66 | "text": "What is the free things ", 67 | "userDefined": false 68 | }, 69 | { 70 | "text": "this year", 71 | "meta": "@sys.ignore", 72 | "userDefined": false 73 | }, 74 | { 75 | "text": "?", 76 | "userDefined": false 77 | } 78 | ], 79 | "isTemplate": false, 80 | "count": 1, 81 | "updated": 1526959318 82 | }, 83 | { 84 | "id": "90c495d2-b75c-41ba-8f0c-dadb44a672b1", 85 | "data": [ 86 | { 87 | "text": "Will", 88 | "meta": "@sys.ignore", 89 | "userDefined": false 90 | }, 91 | { 92 | "text": " we get free stuff?", 93 | "userDefined": false 94 | } 95 | ], 96 | "isTemplate": false, 97 | "count": 1, 98 | "updated": 1526959318 99 | }, 100 | { 101 | "id": "2e62b06b-4032-4da9-bf85-323203e22869", 102 | "data": [ 103 | { 104 | "text": "What is the swag ", 105 | "userDefined": false 106 | }, 107 | { 108 | "text": "this year", 109 | "meta": "@sys.ignore", 110 | "userDefined": false 111 | }, 112 | { 113 | "text": "?", 114 | "userDefined": false 115 | } 116 | ], 117 | "isTemplate": false, 118 | "count": 1, 119 | "updated": 1526959318 120 | }, 121 | { 122 | "id": "499b6a01-9363-4072-af9c-db0d2a63a016", 123 | "data": [ 124 | { 125 | "text": "Will there be a free prize?", 126 | "userDefined": false 127 | } 128 | ], 129 | "isTemplate": false, 130 | "count": 1, 131 | "updated": 1526959318 132 | } 133 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/things-to-do-menu.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "e6b1c0f9-3a50-40f5-8c8e-2cbafe45eca3", 3 | "name": "things-to-do-menu", 4 | "auto": true, 5 | "contexts": [ 6 | "pre-or-during-io" 7 | ], 8 | "responses": [ 9 | { 10 | "resetContexts": false, 11 | "affectedContexts": [], 12 | "parameters": [], 13 | "messages": [ 14 | { 15 | "type": 0, 16 | "lang": "en", 17 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 18 | } 19 | ], 20 | "defaultResponsePlatforms": {}, 21 | "speech": [] 22 | } 23 | ], 24 | "priority": 500000, 25 | "webhookUsed": true, 26 | "webhookForSlotFilling": false, 27 | "lastUpdate": 1526959345, 28 | "fallbackIntent": false, 29 | "events": [] 30 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/things-to-do-menu_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "b5623fbd-01c7-4d85-9fcc-742a0ff4c981", 4 | "data": [ 5 | { 6 | "text": "what can i do", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 0, 12 | "updated": 1525390028 13 | }, 14 | { 15 | "id": "d7211b90-6d60-48fa-94fe-ab9ec22a8541", 16 | "data": [ 17 | { 18 | "text": "what is there to do", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 0, 24 | "updated": 1525390028 25 | }, 26 | { 27 | "id": "689b2d68-a4f7-438a-9ed9-e702bf5d3ef3", 28 | "data": [ 29 | { 30 | "text": "things to do", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 0, 36 | "updated": 1525390028 37 | }, 38 | { 39 | "id": "14389198-78b6-4582-8e58-bc539243d951", 40 | "data": [ 41 | { 42 | "text": "find things to do", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 0, 48 | "updated": 1525390028 49 | } 50 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/unrecognized-deep-link.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "8d8fa88b-546b-4995-a6a2-93177c3b61ef", 3 | "name": "unrecognized-deep-link", 4 | "auto": true, 5 | "contexts": [ 6 | "google_assistant_welcome" 7 | ], 8 | "responses": [ 9 | { 10 | "resetContexts": false, 11 | "affectedContexts": [], 12 | "parameters": [ 13 | { 14 | "id": "979197fb-603b-47c8-bd75-4100bc7094ba", 15 | "dataType": "@sys.any", 16 | "name": "any", 17 | "value": "$any", 18 | "isList": false 19 | } 20 | ], 21 | "messages": [ 22 | { 23 | "type": "suggestion_chips", 24 | "platform": "google", 25 | "lang": "en", 26 | "suggestions": [ 27 | { 28 | "title": "Browse topics" 29 | }, 30 | { 31 | "title": "Manage my schedule" 32 | }, 33 | { 34 | "title": "Is there swag?" 35 | }, 36 | { 37 | "title": "How can I watch remotely?" 38 | }, 39 | { 40 | "title": "Keynotes" 41 | } 42 | ] 43 | }, 44 | { 45 | "type": 0, 46 | "lang": "en", 47 | "speech": "I don\u0027t know anything about that, but can I help you with something else?" 48 | } 49 | ], 50 | "defaultResponsePlatforms": { 51 | "google": true 52 | }, 53 | "speech": [] 54 | } 55 | ], 56 | "priority": 500000, 57 | "webhookUsed": true, 58 | "webhookForSlotFilling": false, 59 | "lastUpdate": 1524685886, 60 | "fallbackIntent": false, 61 | "events": [] 62 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/unrecognized-deep-link_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "7825785f-4e1f-422b-92a4-ca3e9f8c4df7", 4 | "data": [ 5 | { 6 | "text": "anything", 7 | "alias": "any", 8 | "meta": "@sys.any", 9 | "userDefined": true 10 | } 11 | ], 12 | "isTemplate": false, 13 | "count": 0, 14 | "updated": 1524685886 15 | } 16 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/watch-remotely.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "6e748fb3-5365-45a9-85eb-35314e0fc401", 3 | "name": "watch-remotely", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1526334970, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/watch-remotely_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "a40d7358-1a80-4c97-a2ff-ea7f169dae08", 4 | "data": [ 5 | { 6 | "text": "how can i watch live?", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1525454017 13 | }, 14 | { 15 | "id": "21865a2b-c188-46c0-be68-de1503f02755", 16 | "data": [ 17 | { 18 | "text": "watching live", 19 | "userDefined": false 20 | } 21 | ], 22 | "isTemplate": false, 23 | "count": 1, 24 | "updated": 1525454017 25 | }, 26 | { 27 | "id": "165c3ff1-9698-42a7-825f-4fb143435cbf", 28 | "data": [ 29 | { 30 | "text": "watching the livestream", 31 | "userDefined": false 32 | } 33 | ], 34 | "isTemplate": false, 35 | "count": 1, 36 | "updated": 1525454017 37 | }, 38 | { 39 | "id": "0e251add-6a41-4797-8c70-688a24f76b8d", 40 | "data": [ 41 | { 42 | "text": "watching remotely", 43 | "userDefined": false 44 | } 45 | ], 46 | "isTemplate": false, 47 | "count": 1, 48 | "updated": 1525453564 49 | }, 50 | { 51 | "id": "6dec40fb-3c1a-4773-a298-7ff05519cdc7", 52 | "data": [ 53 | { 54 | "text": "livestream", 55 | "userDefined": false 56 | } 57 | ], 58 | "isTemplate": false, 59 | "count": 1, 60 | "updated": 1525453564 61 | }, 62 | { 63 | "id": "6d9f8861-3e7e-439e-8f0e-a1588cc6b946", 64 | "data": [ 65 | { 66 | "text": "the livestream", 67 | "userDefined": false 68 | } 69 | ], 70 | "isTemplate": false, 71 | "count": 1, 72 | "updated": 1525453564 73 | }, 74 | { 75 | "id": "edb098b5-47f7-4456-b11c-8f5b78fd3a50", 76 | "data": [ 77 | { 78 | "text": "whats I/O extended?", 79 | "userDefined": false 80 | } 81 | ], 82 | "isTemplate": false, 83 | "count": 0, 84 | "updated": 1525394790 85 | }, 86 | { 87 | "id": "b3c2fc27-387a-4ad9-ad96-3f300c8f2511", 88 | "data": [ 89 | { 90 | "text": "whats IO extended?", 91 | "userDefined": false 92 | } 93 | ], 94 | "isTemplate": false, 95 | "count": 0, 96 | "updated": 1525394790 97 | }, 98 | { 99 | "id": "ad4b389e-aaf0-4814-9897-dcd070c0f9c5", 100 | "data": [ 101 | { 102 | "text": "Will there be a livestream?", 103 | "userDefined": false 104 | } 105 | ], 106 | "isTemplate": false, 107 | "count": 0, 108 | "updated": 1525394790 109 | }, 110 | { 111 | "id": "926442a1-4f71-42bd-a765-6235ede4d1a8", 112 | "data": [ 113 | { 114 | "text": "How can I watch remotely?", 115 | "userDefined": false 116 | } 117 | ], 118 | "isTemplate": false, 119 | "count": 1, 120 | "updated": 1525453564 121 | }, 122 | { 123 | "id": "be330582-f2f3-4d39-b7ae-786d960297e8", 124 | "data": [ 125 | { 126 | "text": "I want to rewatch a talk, is that possible?", 127 | "userDefined": false 128 | } 129 | ], 130 | "isTemplate": false, 131 | "count": 1, 132 | "updated": 1525453564 133 | }, 134 | { 135 | "id": "b492d278-da48-416c-a7dc-1c4969add4fc", 136 | "data": [ 137 | { 138 | "text": "Are there recordings?", 139 | "userDefined": false 140 | } 141 | ], 142 | "isTemplate": false, 143 | "count": 1, 144 | "updated": 1525453564 145 | }, 146 | { 147 | "id": "5d4cbd9d-f152-4af2-986d-df8f5e069fec", 148 | "data": [ 149 | { 150 | "text": "Will it be on youtube?", 151 | "userDefined": false 152 | } 153 | ], 154 | "isTemplate": false, 155 | "count": 1, 156 | "updated": 1525453564 157 | }, 158 | { 159 | "id": "bf32b86e-efca-4289-acb4-a55c566861bb", 160 | "data": [ 161 | { 162 | "text": "I can\u0027t go, can I watch the sessions?", 163 | "userDefined": false 164 | } 165 | ], 166 | "isTemplate": false, 167 | "count": 1, 168 | "updated": 1525453564 169 | }, 170 | { 171 | "id": "ac8a0a69-0ebd-460c-ae71-ec878b740293", 172 | "data": [ 173 | { 174 | "text": "Can I watch sessions later?", 175 | "userDefined": false 176 | } 177 | ], 178 | "isTemplate": false, 179 | "count": 1, 180 | "updated": 1525453564 181 | }, 182 | { 183 | "id": "f21a573b-294f-4ce2-b964-ffa56e12f8e8", 184 | "data": [ 185 | { 186 | "text": "Tell me about the live stream", 187 | "userDefined": false 188 | } 189 | ], 190 | "isTemplate": false, 191 | "count": 1, 192 | "updated": 1525454017 193 | } 194 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/welcome.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "6f59ad71-6ea2-4112-9cd9-57e7a0285edd", 3 | "name": "welcome", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "action": "input.welcome", 10 | "affectedContexts": [ 11 | { 12 | "name": "welcome-followup", 13 | "parameters": {}, 14 | "lifespan": 0 15 | } 16 | ], 17 | "parameters": [], 18 | "messages": [ 19 | { 20 | "type": 0, 21 | "lang": "en", 22 | "speech": "As the Keeper of I/O Specific Knowledge, consider me your guide. So, what do you want to know about I/O?" 23 | } 24 | ], 25 | "defaultResponsePlatforms": {}, 26 | "speech": [] 27 | } 28 | ], 29 | "priority": 500000, 30 | "webhookUsed": true, 31 | "webhookForSlotFilling": false, 32 | "lastUpdate": 1525376748, 33 | "fallbackIntent": false, 34 | "events": [ 35 | { 36 | "name": "WELCOME" 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/welcome_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "d55faff4-6fc8-4f3e-a30d-f59d52e358a7", 4 | "data": [ 5 | { 6 | "text": "test welcome intent", 7 | "userDefined": false 8 | } 9 | ], 10 | "isTemplate": false, 11 | "count": 1, 12 | "updated": 1523250369 13 | } 14 | ] -------------------------------------------------------------------------------- /dialogflow-agent/intents/what-to-wear.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "2c9479b2-7720-4683-a03b-9715c0c7b385", 3 | "name": "what-to-wear", 4 | "auto": true, 5 | "contexts": [], 6 | "responses": [ 7 | { 8 | "resetContexts": false, 9 | "affectedContexts": [], 10 | "parameters": [], 11 | "messages": [ 12 | { 13 | "type": 0, 14 | "lang": "en", 15 | "speech": "Sorry, I\u0027m getting an unexpected error, so I can\u0027t help with that right now. Is there something else I can tell you about IO?" 16 | } 17 | ], 18 | "defaultResponsePlatforms": {}, 19 | "speech": [] 20 | } 21 | ], 22 | "priority": 500000, 23 | "webhookUsed": true, 24 | "webhookForSlotFilling": false, 25 | "lastUpdate": 1526334988, 26 | "fallbackIntent": false, 27 | "events": [] 28 | } -------------------------------------------------------------------------------- /dialogflow-agent/intents/what-to-wear_usersays_en.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "1b27a258-8e1b-4b7e-b714-1a79ca767ca7", 4 | "data": [ 5 | { 6 | "text": "hows the weather going to be at ", 7 | "userDefined": false 8 | }, 9 | { 10 | "text": "iowa", 11 | "meta": "@sys.ignore", 12 | "userDefined": false 13 | }, 14 | { 15 | "text": "?", 16 | "userDefined": false 17 | } 18 | ], 19 | "isTemplate": false, 20 | "count": 0, 21 | "updated": 1524636394 22 | }, 23 | { 24 | "id": "1ac971ec-51ff-4528-a9c4-3e0ca8df000b", 25 | "data": [ 26 | { 27 | "text": "hows the weather going to be?", 28 | "userDefined": false 29 | } 30 | ], 31 | "isTemplate": false, 32 | "count": 0, 33 | "updated": 1524636394 34 | }, 35 | { 36 | "id": "002b90f2-e20d-4a73-832d-0326e6d913c1", 37 | "data": [ 38 | { 39 | "text": "what is the weather at ayo?", 40 | "userDefined": false 41 | } 42 | ], 43 | "isTemplate": false, 44 | "count": 0, 45 | "updated": 1524636394 46 | }, 47 | { 48 | "id": "fe6d2586-1c35-4486-ac92-cf6f14b0b624", 49 | "data": [ 50 | { 51 | "text": "what is the weather at i o?", 52 | "userDefined": false 53 | } 54 | ], 55 | "isTemplate": false, 56 | "count": 0, 57 | "updated": 1524636394 58 | }, 59 | { 60 | "id": "60889312-0700-468b-940f-c2e5a228c7ef", 61 | "data": [ 62 | { 63 | "text": "how will the weather be?", 64 | "userDefined": false 65 | } 66 | ], 67 | "isTemplate": false, 68 | "count": 0, 69 | "updated": 1524636394 70 | }, 71 | { 72 | "id": "616dfcf0-966c-46c4-a890-222a425263e5", 73 | "data": [ 74 | { 75 | "text": "dress code", 76 | "userDefined": false 77 | } 78 | ], 79 | "isTemplate": false, 80 | "count": 0, 81 | "updated": 1524636394 82 | }, 83 | { 84 | "id": "81a9c4fc-0a8e-4f84-9079-40832cbe642d", 85 | "data": [ 86 | { 87 | "text": "What is expected to wear?", 88 | "userDefined": false 89 | } 90 | ], 91 | "isTemplate": false, 92 | "count": 0, 93 | "updated": 1524636394 94 | }, 95 | { 96 | "id": "c6bbef52-8b80-4f84-9b4a-43c33c10c63b", 97 | "data": [ 98 | { 99 | "text": "Is there a dress code?", 100 | "userDefined": false 101 | } 102 | ], 103 | "isTemplate": false, 104 | "count": 0, 105 | "updated": 1524636394 106 | }, 107 | { 108 | "id": "f02daebd-38f1-40d8-a39b-db66623e860a", 109 | "data": [ 110 | { 111 | "text": "Should I take a jacket?", 112 | "userDefined": false 113 | } 114 | ], 115 | "isTemplate": false, 116 | "count": 0, 117 | "updated": 1524636394 118 | }, 119 | { 120 | "id": "206a755e-fde2-4a78-ac84-d4a1b0176405", 121 | "data": [ 122 | { 123 | "text": "What type of clothes should I wear?", 124 | "userDefined": false 125 | } 126 | ], 127 | "isTemplate": false, 128 | "count": 0, 129 | "updated": 1524636394 130 | }, 131 | { 132 | "id": "d7cf5d21-e343-48bf-9a7f-7819b453ff32", 133 | "data": [ 134 | { 135 | "text": "What should I wear?", 136 | "userDefined": false 137 | } 138 | ], 139 | "isTemplate": false, 140 | "count": 1, 141 | "updated": 1523649546 142 | } 143 | ] -------------------------------------------------------------------------------- /dialogflow-agent/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0" 3 | } -------------------------------------------------------------------------------- /docs/DATA.md: -------------------------------------------------------------------------------- 1 | # Data Format 2 | 3 | There are 2 primary data sources used by this Action, Session Data and User 4 | Schedule Data. 5 | 6 | ## Session Data 7 | 8 | Session Data is held in a central JSON file. It includes all relevant data 9 | on the conference agenda details, e.g. 10 | 11 | * Session types 12 | * Session start and end times 13 | * Session rooms 14 | * etc 15 | 16 | This data is fetched from the web as shown in the `functions/event/conference.js` 17 | file. 18 | 19 | ### Example Data 20 | 21 | Below is an example JSON file representing the artifact fetched from the web. 22 | The online file contains more metadata than shown below, but the required 23 | attributes used by this Action are shown here. 24 | 25 | ```json 26 | { 27 | "sessions": [ 28 | { 29 | "id": "abc-123", 30 | "title": "[Session] Example Session", 31 | "description": "Come learn how to build accessible software.", 32 | "type": "Sessions", 33 | "contentLevels": [ 34 | "Intermediate" 35 | ], 36 | "tagNames": [ 37 | "topic_accessibility", 38 | "topic_design", 39 | "type_sessions", 40 | "level_intermediate" 41 | ], 42 | "startTimestamp": 1525824000000, 43 | "endTimestamp": 1525827600000, 44 | "livestream": true, 45 | "youtubeUrl": "https://www.youtube.com/", 46 | "room": "4902fc2b-dbf1-49dc-828f-2566dde55e03" 47 | }, 48 | { 49 | "id": "xyz-456", 50 | "title": "[Office Hour] Example Office Hours", 51 | "description": "Come talk to us about using Google's great APIs!\n", 52 | "type": "Office Hours", 53 | "tagNames": [ 54 | "type_officehours", 55 | "topic_cloud" 56 | ], 57 | "startTimestamp": 1525879800000, 58 | "endTimestamp": 1525883400000, 59 | "livestream": false, 60 | "youtubeUrl": "", 61 | "room": "4902fc2b-dbf1-49dc-828f-2566dde55e03" 62 | } 63 | ], 64 | "tags": [ 65 | { 66 | "id": "0a87138f-6cf7-4a47-a749-0dafd0c84e9c", 67 | "name": "Accessibility", 68 | "category": "topic", 69 | "tag": "topic_accessibility" 70 | }, 71 | { 72 | "id": "9f3855b4-62a0-4bc1-b28d-ea7352658cac", 73 | "name": "Cloud", 74 | "category": "topic", 75 | "tag": "topic_cloud" 76 | } 77 | ], 78 | "rooms": [ 79 | { 80 | "id": "fb8f9af2-c4b3-4cd3-b571-421e2c6ebad1", 81 | "name": "Amphitheatre" 82 | }, 83 | { 84 | "id": "4902fc2b-dbf1-49dc-828f-2566dde55e03", 85 | "name": "App Reviews tent - B" 86 | } 87 | ] 88 | } 89 | ``` 90 | 91 | ## User Schedule Data 92 | 93 | User event data is stored in [Cloud Firestore](https://firebase.google.com/docs/firestore/). 94 | There is a single top-level collection called 'users'. The data hierarchy is as 95 | follows. 96 | 97 | ``` 98 | 'users': collection of documents - keyed by User UID from Firebase Auth 99 | -> 'registered' : boolean 100 | -> 'events' : collection of documents - keyed by session ID from Session Data 101 | -> 'isStarred' : boolean 102 | -> 'reservationStatus' : string ('RESERVED', 'WAITLISTED', or 'NONE') 103 | ``` 104 | 105 | -------------------------------------------------------------------------------- /docs/SETUP.md: -------------------------------------------------------------------------------- 1 | ## Setup Instructions 2 | 3 | This sample demonstrates Actions on Google features for use on Google Assistant -- using the [Node.js client library](https://github.com/actions-on-google/actions-on-google-nodejs) and deployed on [Cloud Functions for Firebase](https://firebase.google.com/docs/functions/). 4 | 5 | ## Setup Instructions 6 | ### Prerequisites 7 | 1. Node.js and NPM 8 | + We recommend installing using [NVM](https://github.com/creationix/nvm) 9 | 1. Install the [Firebase CLI](https://developers.google.com/actions/dialogflow/deploy-fulfillment) 10 | + We recommend using version 6.5.0, `npm install -g firebase-tools@6.5.0` 11 | + Run `firebase login` with your Google account 12 | 13 | ### Configuration 14 | #### Actions Console 15 | 1. From the [Actions on Google Console](https://console.actions.google.com/), New project (this will become your *Project ID*) > **Create project** > under **More options** > **Conversational** 16 | 1. 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**. 17 | 1. In the Dialogflow console, go to **Settings** ⚙ > **Export and Import** > **Restore from zip** using the `agent.zip` in this sample's directory. 18 | 19 | #### Firebase Deployment 20 | 1. On your local machine, in the `functions` directory, run `npm install` 21 | 1. Run `firebase deploy --project {PROJECT_ID}` to deploy the function 22 | + To find your **Project ID**: In [Dialogflow console](https://console.dialogflow.com/) under **Settings** ⚙ > **General** tab > **Project ID**. 23 | 24 | #### Dialogflow Console 25 | 1. Return to the [Dialogflow Console](https://console.dialogflow.com) > select **Fulfillment** > **Enable** Webhook > Set **URL** to the **Function URL** that was returned after the deploy command > **SAVE**. 26 | ``` 27 | Function URL (googleio): https://${REGION}-${PROJECT_ID}.cloudfunctions.net/googleio 28 | ``` 29 | 30 | ### Google Sign In (Account Linking) 31 | **Required if testing the personal schedule feature.** 32 | 1. Create a copy of default.json in the `functions/config` directory called `dev.json` 33 | 1. In the [Actions on Google console](https://console.actions.google.com) > from the top menu **Develop** > **Account Linking** (left nav): 34 | + **Account Creation**: select `Yes, allow users to sign up for new accounts via voice` 35 | + **Linking Type**: **Google Sign In**. 36 | + **Client Information**: copy the **Client ID** and paste into `functions/config/dev.json` 37 | 38 | ### Cloud Firestore on Firebase 39 | **Required if testing the personal schedule feature.** 40 | 1. Log into the [Firebase Console](https://console.firebase.google.com) > select your *Project ID*. 41 | 1. Under **Develop** > **Authentication** > **Sign-in Method** tab > for Sign-in provider select **Email/Password** > **Enable** Allow users to sign up using their email address and password > **Save**. 42 | 1. From the **Users** tab > select **Add user** > add **Gmail** email address you will use for testing. 43 | + For testing this sample, the password can be "abc123" 44 | + Take note of the User UID. 45 | 1. Under **Develop** > **Database** > **Create Database** > select **Start in test mode** then > **Enable**. 46 | 1. Add some test user data for the User UID created previously. See the 47 | [Firestore Data](DATA.md) format for information on how this data is 48 | organized. 49 | 1. From the Firebase console, select ⚙ > **Project settings** > **Service Accounts** tab > **Generate new private key** to download a service key > save key as `serviceKey.json` into the `functions/config` directory path. 50 | 1. From `functions/`, redeploy by running `firebase deploy --project {PROJECT_ID}` 51 | 52 | ### Running this Sample 53 | + Return to the [Dialogflow Console](https://console.dialogflow.com) > 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`. 54 | + 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”. 55 | + You can also use the Actions on Google Console simulator to test most features and preview on-device behavior. 56 | 57 | ## References & Issues 58 | + Questions? Go to [StackOverflow](https://stackoverflow.com/questions/tagged/actions-on-google), [Assistant Developer Community on Reddit](https://www.reddit.com/r/GoogleAssistantDev/) or [Support](https://developers.google.com/actions/support/). 59 | + For bugs, please report an issue on Github. 60 | + Actions on Google [Documentation](https://developers.google.com/actions/extending-the-assistant) 61 | + Actions on Google [Codelabs](https://codelabs.developers.google.com/?cat=Assistant) 62 | + [Webhook Boilerplate Template](https://github.com/actions-on-google/dialogflow-webhook-boilerplate-nodejs) for Actions on Google 63 | 64 | ## Make Contributions 65 | Please read and follow the steps in the [CONTRIBUTING.md](CONTRIBUTING.md). 66 | 67 | ## License 68 | See [LICENSE](LICENSE). 69 | 70 | ## Terms 71 | 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](https://developers.google.com/terms/). 72 | -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "functions": { 3 | "predeploy": [ 4 | "npm --prefix \"$RESOURCE_DIR\" run lint" 5 | ] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /functions/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "parserOptions": { 3 | "ecmaVersion": 7, 4 | "sourceType": "script" 5 | }, 6 | "extends": ["google"], 7 | "env": { 8 | "node": true 9 | } 10 | } -------------------------------------------------------------------------------- /functions/app.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const { 15 | dialogflow, 16 | } = require('actions-on-google'); 17 | 18 | const getConfig = () => { 19 | let config; 20 | try { 21 | config = require('./config/dev.json'); 22 | } catch (error) { 23 | console.debug(`Using default config, ${error}`); 24 | config = require('./config/default.json'); 25 | } 26 | config.phase = config.phase || 'default'; 27 | return config; 28 | }; 29 | const config = getConfig(); 30 | 31 | const { 32 | getPhase, 33 | } = require('./timeUtils'); 34 | const static = require('./prompts/static/utils'); 35 | const menu = require('./prompts/menu/utils'); 36 | const { 37 | fallback, 38 | noInput, 39 | goodbye, 40 | } = require('./prompts/common/utils'); 41 | const schedule = require('./prompts/schedule/utils'); 42 | const ConferenceData = require('./event/conference'); 43 | 44 | const app = dialogflow({ 45 | debug: true, 46 | clientId: config.clientId, 47 | init: () => ({ 48 | data: { 49 | fallbackCount: 0, 50 | noInputCount: 0, 51 | noInputResponses: [], 52 | fallbackResponses: [], 53 | currentItems: [], 54 | nextItems: [], 55 | sessionType: null, 56 | sessionShown: null, 57 | sessionsTag: null, 58 | tagId: null, 59 | }, 60 | }), 61 | }); 62 | 63 | app.middleware((conv) => { 64 | conv.currentTime = Date.now(); 65 | conv.phase = config.phase === 'default' ? 66 | getPhase(conv.currentTime) : config.phase; 67 | if (conv.phase === 'post') { 68 | delete conv.user.storage.uid; 69 | conv.data.sessionType = 'sessions'; 70 | } else { 71 | conv.contexts.set('pre-or-during-io', 99); 72 | } 73 | conv.isRepeat = conv.phase === getPhase(conv.user.last.seen) ? 74 | 'repeat' : 'firstTime'; 75 | if (!(conv.intent === 'fallback' || conv.intent === 'no-input')) { 76 | conv.data.fallbackCount = 0; 77 | conv.data.noInputCount = 0; 78 | conv.data.fallbackResponses = []; 79 | conv.data.noInputResponses = []; 80 | } 81 | conv.conference = new ConferenceData(); 82 | }); 83 | 84 | app.intent([ 85 | 'menu', 86 | 'welcome', 87 | 'things-to-do-menu', 88 | 'relax-menu', 89 | 'date', 90 | 'directions', 91 | 'keynote', 92 | 'codelabs', 93 | 'app-review', 94 | 'food', 95 | 'swag', 96 | 'unrecognized-deep-link', 97 | 'after-party', 98 | 'watch-remotely', 99 | 'announcements', 100 | 'lost-and-found', 101 | 'what-to-wear', 102 | 'ask-attending-yes', 103 | 'ask-attending-no', 104 | 'welcome', 105 | 'concert', 106 | 'popular-justice-songs', 107 | 'popular-phantogram-songs', 108 | 'scavenger-hunt', 109 | 'show-session-directions', 110 | 'show-schedule-session-directions', 111 | ], static); 112 | 113 | app.intent([ 114 | 'browse-topics', 115 | 'browse-topics-next', 116 | 'browse-topics-repeat', 117 | 'browse-topics-OPTION', 118 | 'browse-sessions', 119 | 'browse-sessions-repeat', 120 | 'browse-sessions-next', 121 | 'show-session', 122 | 'show-session-repeat', 123 | 'show-schedule-session', 124 | 'show-schedule-session-repeat', 125 | 'check-type', 126 | ], menu); 127 | 128 | app.intent([ 129 | 'show-schedule', 130 | 'schedule-sign-in', 131 | 'show-schedule-browse-topics-yes', 132 | 'show-schedule-browse-topics-no', 133 | 'show-schedule-next', 134 | 'show-schedule-repeat', 135 | 'next-session-directions', 136 | 'next-session-directions-sign-in', 137 | ], schedule); 138 | 139 | app.intent('cancel', goodbye); 140 | 141 | app.intent('no-input', noInput); 142 | 143 | app.intent('fallback', fallback); 144 | 145 | app.fallback((conv) => { 146 | console.error('No matching intent handler found: ' + conv.intent); 147 | fallback(conv); 148 | }); 149 | 150 | exports.app = app; 151 | -------------------------------------------------------------------------------- /functions/auth/user.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const admin = require('firebase-admin'); 15 | let db = null; 16 | try { 17 | admin.initializeApp({ 18 | credential: admin.credential.cert(require('../config/serviceKey.json')), 19 | }); 20 | db = admin.firestore(); 21 | } catch (error) { 22 | console.debug(`Unable to initialize Firestore access, ${error}`); 23 | } 24 | 25 | exports.getFirebaseUser = (email) => { 26 | console.log(`Fetching user from Firebase Auth`); 27 | return admin.auth().getUserByEmail(email).then((userRecord) => { 28 | return userRecord.uid; 29 | }).catch((error) => { 30 | console.error(`Error fetching user`); 31 | throw error; 32 | }); 33 | }; 34 | 35 | exports.UserData = class UserData { 36 | /** 37 | * Constructor for UserData class. Initializes the db accessor for Firestore. 38 | * 39 | * @param {string} uid Firebase Auth UID 40 | */ 41 | constructor(uid) { 42 | this.uid = uid; 43 | } 44 | 45 | /** 46 | * Gets the schedule for the user. 47 | * 48 | * @return {Promise>} Promise which resolves with array of 49 | * sessions. Each will have a Session ID and reservation status, where 50 | * reservation status is optionally a reservationStatus string property 51 | * (either 'RESERVED' or 'WAITLISTED') and optional isStarred boolean 52 | * property. 53 | */ 54 | schedule() { 55 | console.log('Getting user schedule'); 56 | return db.collection('users').doc(this.uid).collection('events'). 57 | get().then((events) => { 58 | const schedule = []; 59 | events.forEach((event) => { 60 | const {isStarred, reservationStatus: status} = event.data(); 61 | if (isStarred || status === 'RESERVED' || status === 'WAITLISTED') { 62 | schedule.push({id: event.id, reservationStatus: status, isStarred}); 63 | } 64 | }); 65 | return schedule; 66 | }).catch((error) => { 67 | console.error(`Error getting user schedule: ${error}`); 68 | throw error; 69 | }); 70 | } 71 | }; 72 | -------------------------------------------------------------------------------- /functions/config/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "clientId": "REPLACE_CLIENT_ID", 3 | "phase": "default" 4 | } -------------------------------------------------------------------------------- /functions/index.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const functions = require('firebase-functions'); 15 | const {app} = require('./app'); 16 | 17 | exports.googleio = functions.https.onRequest(app); 18 | -------------------------------------------------------------------------------- /functions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "functions", 3 | "description": "Cloud Functions for Firebase", 4 | "engines": { 5 | "node": "8" 6 | }, 7 | "scripts": { 8 | "lint": "eslint .", 9 | "test": "npm run lint", 10 | "serve": "firebase serve --only functions", 11 | "shell": "firebase functions:shell", 12 | "start": "npm run shell", 13 | "deploy": "firebase deploy --only functions", 14 | "logs": "firebase functions:log" 15 | }, 16 | "dependencies": { 17 | "actions-on-google": "^2.7.0", 18 | "firebase-admin": "^7.2.0", 19 | "firebase-functions": "^2.2.1", 20 | "moment": "^2.22.1", 21 | "moment-timezone": "^0.5.16", 22 | "request": "^2.85.0" 23 | }, 24 | "devDependencies": { 25 | "eslint": "^4.12.0", 26 | "eslint-config-google": "^0.9.1" 27 | }, 28 | "private": true 29 | } 30 | -------------------------------------------------------------------------------- /functions/prompts/common/concert.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const { 15 | BrowseCarouselItem, 16 | BrowseCarousel, 17 | Image, 18 | } = require('actions-on-google'); 19 | 20 | /* eslint-disable max-len*/ 21 | const getYouTubeURL = (videoId) => { 22 | return `https://www.youtube.com/watch?v=${videoId}`; 23 | }; 24 | 25 | const getYouTubeThumbnail = (videoId) => { 26 | return `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg`; 27 | }; 28 | 29 | const carouselSong = (title, videoId) => { 30 | return new BrowseCarouselItem({ 31 | title: title, 32 | url: getYouTubeURL(videoId), 33 | image: new Image({ 34 | url: getYouTubeThumbnail(videoId), 35 | alt: title, 36 | }), 37 | }); 38 | }; 39 | 40 | exports.popularJusticeSongsCarousel = () => { 41 | return new BrowseCarousel( 42 | carouselSong(`Justice - Genesis - †`, `VKzWLUQizz8`), 43 | carouselSong(`Justice - D.A.N.C.E. - †`, `tCnBrrnOefs`), 44 | carouselSong(`Justice - Phantom Pt II - †`, `5QCBkwmsOk0`), 45 | carouselSong(`Justice - Let There Be Light - †`, `_0-tWLi0Kp4`) 46 | ); 47 | }; 48 | 49 | exports.popularPhantogramSongsCarousel = () => { 50 | return new BrowseCarousel( 51 | carouselSong(`Phantogram "When I'm Small"`, `28tZ-S1LFok`), 52 | carouselSong(`Phantogram - You Don’t Get Me High Anymore`, `jryzEU7WAlg`), 53 | carouselSong(`Phantogram - Fall In Love`, `RsQjC5zVnt8`), 54 | carouselSong(`Phantogram - Same Old Blues (Official Audio)`, `WcS6MA9fu-I`) 55 | ); 56 | }; 57 | -------------------------------------------------------------------------------- /functions/prompts/common/during.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const { 15 | SimpleResponse, 16 | } = require('actions-on-google'); 17 | 18 | /* eslint-disable max-len*/ 19 | exports.defaultFallbackPrompts = [ 20 | { 21 | 'elements': [ 22 | new SimpleResponse({ 23 | speech: `I'm getting a 4 0 4 error. Which did you want?`, 24 | text: `That's a 404. What did you want help with?`, 25 | }), 26 | ], 27 | 'suggestions': { 28 | 'required': [ 29 | 'Manage my schedule', 30 | 'Find things to do', 31 | 'Get directions', 32 | ], 33 | 'randomized': [ 34 | 'Where is it?', 'How can I watch remotely?', `Find office hours`, 35 | 'Will there be food?', 'Is there swag?', `When's the after party?`, 'Codelabs and sandboxes', 36 | ], 37 | }, 38 | }, 39 | { 40 | 'elements': [ 41 | new SimpleResponse({ 42 | speech: `Sorry. That's beyond my expertise. Can I help you manage your schedule, find things to do, or give you directions?`, 43 | text: `Sorry, that's beyond my expertise. Can I help you manage your schedule, find things to do, or give you directions?`, 44 | }), 45 | ], 46 | 'suggestions': { 47 | 'required': [ 48 | 'Manage my schedule', 49 | 'Find things to do', 50 | 'Get directions', 51 | ], 52 | }, 53 | }, 54 | { 55 | 'elements': [ 56 | new SimpleResponse({ 57 | speech: `Since I'm having trouble, I'm going to call I T, though they'll probably just tell me to turn it off then on again. Bye for now.`, 58 | text: `Since I'm having trouble, I'm going to call IT, though they'll probably just tell me to turn it off then on again. Bye for now.`, 59 | }), 60 | ], 61 | }, 62 | ]; 63 | 64 | // No Input Prompts should work only on speaker surfaces 65 | exports.defaultNoInputPrompts = [ 66 | new SimpleResponse({ 67 | speech: `You’re sending an empty signal here. I can manage your schedule, help you find things to do, or give you directions. Which do you need?`, 68 | text: `What can I help you with?`, 69 | }), 70 | new SimpleResponse({ 71 | speech: `Do you want me to manage your schedule, help you find things to do, or give you directions?`, 72 | text: `Do you want me to manage your schedule, help you find things to do, or give you directions?`, 73 | }), 74 | new SimpleResponse({ 75 | speech: `Since I'm having trouble, I'm going to call I T, though they'll probably just tell me to turn it off then on again. Bye for now.`, 76 | text: `Since I'm having trouble, I'm going to call IT, though they'll probably just tell me to turn it off then on again. Bye for now.`, 77 | }), 78 | ]; 79 | 80 | exports.goodbye = [ 81 | new SimpleResponse({ 82 | speech: `OK. Hope to talk to you again soon.`, 83 | text: `OK. Hope to talk to you again soon.`, 84 | }), 85 | new SimpleResponse({ 86 | speech: `Come back if there's anything else IO you'd like to know.`, 87 | text: `Come back if there's anything else I/O you'd like to know.`, 88 | }), 89 | ]; 90 | -------------------------------------------------------------------------------- /functions/prompts/common/post.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const { 15 | SimpleResponse, 16 | } = require('actions-on-google'); 17 | 18 | /* eslint-disable max-len*/ 19 | exports.defaultFallbackPrompts = [ 20 | { 21 | 'elements': [ 22 | new SimpleResponse({ 23 | speech: `Well that's a 4 0 4. Can I interest you in info on the keynotes, the sessions, or how to watch the recordings?`, 24 | text: `Can I interest you in info on the keynotes, the sessions, or how to watch the recordings?`, 25 | }), 26 | ], 27 | 'suggestions': { 28 | 'required': [ 29 | 'Keynotes', 30 | 'Browse sessions', 31 | ], 32 | 'randomized': [], 33 | }, 34 | }, 35 | { 36 | 'elements': [ 37 | new SimpleResponse({ 38 | speech: `Sorry. That's beyond my expertise. Do you want to hear about the keynotes, browse sessions, or learn where you can watch the recordings?`, 39 | text: `Do you want to hear about the keynotes, browse sessions, or learn where you can watch the recordings?`, 40 | }), 41 | ], 42 | 'suggestions': { 43 | 'required': [ 44 | 'Keynotes', 45 | 'Browse sessions', 46 | ], 47 | 'randomized': [], 48 | }, 49 | }, 50 | { 51 | 'elements': [ 52 | new SimpleResponse({ 53 | speech: `Since I'm having trouble, I'm going to call I T, though they'll probably just tell me to turn it off then on again. Bye for now.`, 54 | text: `Since I'm having trouble, I'm going to call IT, though they'll probably just tell me to turn it off then on again. Bye for now.`, 55 | }), 56 | ], 57 | }, 58 | ]; 59 | 60 | // No Input Prompts should work only on speaker surfaces 61 | exports.defaultNoInputPrompts = [ 62 | new SimpleResponse({ 63 | speech: `You're sending an empty signal here. What do you want to know about IO?`, 64 | text: `What do you want to know about IO?`, 65 | }), 66 | new SimpleResponse({ 67 | speech: `I can tell you about the keynotes, sessions, or anything else about IO. What would you like to know?`, 68 | text: `What would you like to know?`, 69 | }), 70 | new SimpleResponse({ 71 | speech: `Since I'm having trouble, I'm going to call I T, though they'll probably just tell me to turn it off then on again. Bye for now.`, 72 | text: `Since I'm having trouble, I'm going to call IT, though they'll probably just tell me to turn it off then on again. Bye for now.`, 73 | }), 74 | ]; 75 | 76 | exports.goodbye = [ 77 | new SimpleResponse({ 78 | speech: `OK. Goodbye.`, 79 | text: `OK. Goodbye.`, 80 | }), 81 | ]; 82 | -------------------------------------------------------------------------------- /functions/prompts/common/pre.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const { 15 | SimpleResponse, 16 | } = require('actions-on-google'); 17 | 18 | /* eslint-disable max-len*/ 19 | exports.defaultFallbackPrompts = [ 20 | { 21 | 'elements': [ 22 | new SimpleResponse({ 23 | speech: `I'm getting a 4 O 4 error. What did you want to know about IO?`, 24 | text: `That's a 404. What did you want to know about I/O?`, 25 | }), 26 | ], 27 | 'suggestions': { 28 | 'required': [ 29 | 'Tell me about keynotes', 30 | 'Tell me about sessions', 31 | ], 32 | 'randomized': [ 33 | 'Where is it?', 'How can I watch remotely?', `Find office hours`, 34 | 'Will there be food?', 'Is there swag?', `When's the after party?`, 'Codelabs and sandboxes', 35 | ], 36 | }, 37 | }, 38 | { 39 | 'elements': [ 40 | new SimpleResponse({ 41 | speech: `Sorry. That's beyond my expertise. Can I interest you in info on the keynotes, the sessions, or how to watch remotely?`, 42 | text: `Sorry, that's beyond my expertise. Can I interest you in info on the keynotes, the sessions, or how to watch remotely?`, 43 | }), 44 | ], 45 | 'suggestions': { 46 | 'required': [ 47 | 'Tell me about keynotes', 48 | 'Browse sessions', 49 | ], 50 | 'randomized': [ 51 | 'Where is it?', 'How can I watch remotely?', `Find office hours`, 52 | 'Will there be food?', 'Is there swag?', `When's the after party?`, 'Codelabs and sandboxes', 53 | ], 54 | }, 55 | }, 56 | { 57 | 'elements': [ 58 | new SimpleResponse({ 59 | speech: `Since I'm having trouble, I'm going to call I T, though they'll probably just tell me to turn it off then on again. Bye for now.`, 60 | text: `Since I'm having trouble, I'm going to call IT, though they'll probably just tell me to turn it off then on again. Bye for now.`, 61 | }), 62 | ], 63 | }, 64 | ]; 65 | 66 | // No Input Prompts should work only on speaker surfaces 67 | exports.defaultNoInputPrompts = [ 68 | new SimpleResponse({ 69 | speech: `You're sending an empty signal here. What do you want to know about IO?`, 70 | text: `You're sending an empty signal here. What do you want to know about I/O?`, 71 | }), 72 | new SimpleResponse({ 73 | speech: `I can tell you about the keynotes, sessions, or anything else about IO. What would you like to know?`, 74 | text: `I can tell you about the keynotes, sessions, or anything else about I/O. What would you like to know?`, 75 | }), 76 | new SimpleResponse({ 77 | speech: `Since I'm having trouble, I'm going to call I T, though they'll probably just tell me to turn it off then on again. Bye for now.`, 78 | text: `Since I'm having trouble, I'm going to call IT, though they'll probably just tell me to turn it off then on again. Bye for now.`, 79 | }), 80 | ]; 81 | 82 | exports.goodbye = [ 83 | new SimpleResponse({ 84 | speech: `OK. Hope to talk to you again soon.`, 85 | text: `OK. Hope to talk to you again soon.`, 86 | }), 87 | new SimpleResponse({ 88 | speech: `Come back if there's anything else IO you'd like to know.`, 89 | text: `Come back if there's anything else I/O you'd like to know.`, 90 | }), 91 | ]; 92 | -------------------------------------------------------------------------------- /functions/prompts/static/utils.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const { 15 | parse, 16 | resetConversation, 17 | } = require('../common/utils'); 18 | 19 | const { 20 | duringPrompt, 21 | } = require('./utilsDuring'); 22 | 23 | const parsePromptByIntentName = (conv, prompts) => { 24 | return parse(conv, prompts[conv.intent]); 25 | }; 26 | 27 | const prompt = (conv) => { 28 | const prompts = require(`./${conv.phase}.js`); 29 | return parsePromptByIntentName(conv, prompts); 30 | }; 31 | 32 | module.exports = (conv, ...args) => { 33 | resetConversation(conv); 34 | if (conv.phase === 'during') { 35 | return duringPrompt(conv, ...args); 36 | } else { 37 | return prompt(conv, ...args); 38 | } 39 | }; 40 | -------------------------------------------------------------------------------- /functions/timeUtils.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018, Google, Inc. 2 | // Licensed under the Apache License, Version 2.0 (the 'License'); 3 | // you may not use this file except in compliance with the License. 4 | // You may obtain a copy of the License at 5 | // 6 | // http://www.apache.org/licenses/LICENSE-2.0 7 | // 8 | // Unless required by applicable law or agreed to in writing, software 9 | // distributed under the License is distributed on an 'AS IS' BASIS, 10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | // See the License for the specific language governing permissions and 12 | // limitations under the License. 13 | 14 | const moment = require('moment-timezone'); 15 | const timezone = 'America/Los_Angeles'; 16 | // The sets of times in UTC for each day of the event 17 | const eventDay = { 18 | first: { 19 | start: moment.tz('2018-05-08 00:00', timezone), 20 | end: moment.tz('2018-05-08 23:59', timezone), 21 | }, 22 | second: { 23 | start: moment.tz('2018-05-09 00:00', timezone), 24 | end: moment.tz('2018-05-09 23:59', timezone), 25 | }, 26 | third: { 27 | start: moment.tz('2018-05-10 00:00', timezone), 28 | end: moment.tz('2018-05-10 17:00', timezone), 29 | }, 30 | }; 31 | 32 | const keynote = { 33 | google: { 34 | start: moment.tz('2018-05-08 10:00', timezone), 35 | end: moment.tz('2018-05-08 11:30', timezone), 36 | }, 37 | developer: { 38 | start: moment.tz('2018-05-09 12:45', timezone), 39 | end: moment.tz('2018-05-09 13:45', timezone), 40 | }, 41 | }; 42 | 43 | // Gets the day of the event given a timestamp 44 | const getDay = (timestamp) => { 45 | let day = 0; 46 | if (!timestamp) return day; 47 | if (isFirstDay(timestamp)) { 48 | day = 1; 49 | } else if (isSecondDay(timestamp)) { 50 | day = 2; 51 | } else if (isThirdDay(timestamp)) { 52 | day = 3; 53 | } 54 | return day; 55 | }; 56 | 57 | // Returns whether or not the given timestamp occurs on the first day 58 | const isFirstDay = (timestamp) => { 59 | if (!timestamp) return false; 60 | const date = moment(timestamp).tz(timezone); 61 | return date.isBetween(eventDay.first.start, eventDay.first.end); 62 | }; 63 | 64 | // Returns whether or not the given timestamp occurs on the second day 65 | const isSecondDay = (timestamp) => { 66 | if (!timestamp) return false; 67 | const date = moment(timestamp).tz(timezone); 68 | return date.isBetween(eventDay.second.start, eventDay.second.end); 69 | }; 70 | 71 | // Returns whether or not the given timestamp occurs on the third day 72 | const isThirdDay = (timestamp) => { 73 | if (!timestamp) return false; 74 | const date = moment(timestamp).tz(timezone); 75 | return date.isBetween(eventDay.third.start, eventDay.third.end); 76 | }; 77 | const getMoment = (timestamp) => moment(timestamp).tz(timezone); 78 | 79 | // Returns whether or not the given timestamp occurs before the event 80 | const isPreEvent = (timestamp) => { 81 | return timestamp ? eventDay.first.start.isAfter(timestamp) : false; 82 | }; 83 | 84 | // Returns whether or not the given timestamp occurs after the event 85 | const isPostEvent = (timestamp) => { 86 | return timestamp ? eventDay.third.end.isBefore(timestamp) : false; 87 | }; 88 | 89 | // Returns whether or not the given timestamp occurs during the event 90 | const isDuringEvent = (timestamp) => { 91 | return !(isPreEvent(timestamp) || isPostEvent(timestamp)); 92 | }; 93 | 94 | // Returns whether or not the given timestamp occurs before the keynotes 95 | const isBeforeKeynotes = (timestamp) => { 96 | return timestamp ? keynote.google.start.isAfter(timestamp) : false; 97 | }; 98 | 99 | // Returns whether or not the given timestamp occurs after the keynotes 100 | const isAfterKeynotes = (timestamp) => { 101 | return timestamp ? keynote.developer.end.isBefore(timestamp) : false; 102 | }; 103 | 104 | // Returns whether or not the given timestamp is between the two keynotes 105 | const isBetweenKeynotes = (timestamp) => { 106 | return timestamp ? keynote.google.start.isBefore(timestamp) && 107 | keynote.developer.end.isAfter(timestamp) : false; 108 | }; 109 | 110 | // Compares a given current UTC time to prompt phases 111 | const getPhase = (currentTime) => { 112 | if (isPreEvent(currentTime)) { 113 | return 'pre'; 114 | } else if (isDuringEvent(currentTime)) { 115 | return 'during'; 116 | } else if (isPostEvent(currentTime)) { 117 | return 'post'; 118 | } else { 119 | throw new Error('Current time does not fall into phase'); 120 | } 121 | }; 122 | 123 | module.exports = { 124 | getDay, 125 | getPhase, 126 | isFirstDay, 127 | isSecondDay, 128 | isThirdDay, 129 | isBeforeKeynotes, 130 | isAfterKeynotes, 131 | isBetweenKeynotes, 132 | getMoment, 133 | }; 134 | --------------------------------------------------------------------------------