How is Jovo Affected by Deprecation of Google userId Request Field?

google-assistant

#1

Got this email from Google:

Dear Actions on Google Developer,

This is a reminder that on July 29, 2019 , Actions on Google will be shutting down the ‘Anonymous User Identity’ property in AppRequest.

What do I need to do?
To ensure that your Action is not affected by this shutdown, you should look at your code to see whether you use the userID field. If you discover that your Action utilizes userID, you will need to deploy your updated webhook before July 29, 2019 to avoid loss of features. Our migration guide can help in updating your Action. To make sure the fix works, test your Action’s behavior on the Console or a real device starting today (June 28, 2019) using the instructions here.

If you have any questions or require assistance, please do not hesitate to contact Actions on Google Support.

Thanks,
The Actions on Google Team


Google Actions Not Working
#2

We generate the uuidv4 user Id and store it into the userStorage object like it’s recommended by Google here https://developers.google.com/actions/identity/user-info


#3

Yes, find out more here: https://www.jovo.tech/docs/google-assistant#user-id


#4

So, Jovo 1.3.1 will be broken and the only fix is to upgrade to Jovo 2?
@AlexSwe @jan


#5

Yes, you would either need to migrate or modify the framework code of your Jovo 1.3.1 codebase. Some people have been sharing code examples for this in the Jovo Slack a while ago


#6

So I am reviewing this today and noticing the above changes and getting a uuidv4 generated. But that is only for the session. Interacting again with the action and a new uuid is generated.

For our action/skill we greet the user based on number of visits and this change seems to make that unfeasible.

Some of the google docs mention account linking, but for this action, I cannot do that. Are there any other methods I might be missing to accomplish this?


#7

Do you have Voice Match activated for this account? If not, unfortunately the data isn’t stored in the UserStorage


#8

Yes, I do have Voice Match on this account, however I still get a new uuid for each session.


#9

Could you paste request JSONs for the different sessions for us to take a look how the userStorage looks like?


#10

You betcha! Here is the first launch request, and the follow up request where I asked for something:

// Launch the skill

{
    "responseId": "0c2742b8-b4c5-42a9-82fe-1d8428cc96a0-fd8ff490",
    "queryResult": {
        "queryText": "GOOGLE_ASSISTANT_WELCOME",
        "parameters": {},
        "allRequiredParamsPresent": true,
        "outputContexts": [
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/actions_capability_audio_output"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/actions_capability_media_response_audio"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/actions_capability_account_linking"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/google_assistant_input_type_voice"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/google_assistant_welcome"
            }
        ],
        "intent": {
            "name": "projects/my skill/agent/intents/3e5a19eb-4476-48fa-90f0-0249d65e42fd",
            "displayName": "Default Welcome Intent"
        },
        "intentDetectionConfidence": 1,
        "languageCode": "en"
    },
    "originalDetectIntentRequest": {
        "source": "google",
        "version": "2",
        "payload": {
            "user": {
                "locale": "en-US",
                "lastSeen": "2019-07-22T11:22:09Z",
                "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg0ZjI5NGM0NTE2MDA4OGQwNzlmZWU2ODEzOGY1MjEzM2QzZTIyOGMiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYmYiOjE1NjM3OTQ2MzYsImF1ZCI6IjI3NzkwMTEyMjAwMy1rY3IyZXEzaDE2bWFhbmx1N2FqcDYzMzBlaGkwMDVrdC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInN1YiI6IjEwMzQ2ODg1OTgwMTA1MjU0MzQxMCIsImVtYWlsIjoibmF0cml4eEBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwibmFtZSI6Ik5hdGUgUmljaGFyZHNvbiIsInBpY3R1cmUiOiJodHRwczovL2xoNC5nb29nbGV1c2VyY29udGVudC5jb20vLW0xZjl4dXhkRDdzL0FBQUFBQUFBQUFJL0FBQUFBQUFBQVMwL0l0Q3k1SjJZT0ZBL3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJOYXRlIiwiZmFtaWx5X25hbWUiOiJSaWNoYXJkc29uIiwiaWF0IjoxNTYzNzk0OTM2LCJleHAiOjE1NjM3OTg1MzYsImp0aSI6IjE5ODg2MTdjZjBjNDE4ZDA0OTNlODdhYjg1OTJlMTM4MzFjNjU1OGYifQ.EmC910-lDGKjpMOOqb8UYZ5GfNdMMjSPORlHimPrRUOBzaUeLe23iuoTYlW4CIaesZpjvhOrPBCfQnIbjkK6xZMXGd4ZeIAwpNZNT3HRRKE-0wfaDu4gyoJoSbKHN1-j_zJ2ZXTF0rOHteFh1E3Pr3lgP02ZkyxQZlJf28zu2LMQKo2ydH0wEg9PNilEqBVMo4_WUtatctM2OijFAeBE3_FnrxvffW2DpJChuyyxvAxGX4wugskwYseZQ9c-_GC7ZsaksAG7hEly8qKqHfQP1UsSa_eB-mvlTTxRTxVdxoWOJeuhybN6ww2bzGMTieCRUDuoMiMomO5gs_4aaaztjA",
                "userVerificationStatus": "VERIFIED"
            },
            "conversation": {
                "conversationId": "ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA",
                "type": "NEW"
            },
            "inputs": [
                {
                    "intent": "actions.intent.MAIN",
                    "rawInputs": [
                        {
                            "inputType": "VOICE",
                            "query": "talk to my skill"
                        }
                    ]
                }
            ],
            "surface": {
                "capabilities": [
                    {
                        "name": "actions.capability.AUDIO_OUTPUT"
                    },
                    {
                        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
                    },
                    {
                        "name": "actions.capability.ACCOUNT_LINKING"
                    }
                ]
            },
            "isInSandbox": true,
            "availableSurfaces": [
                {
                    "capabilities": [
                        {
                            "name": "actions.capability.AUDIO_OUTPUT"
                        },
                        {
                            "name": "actions.capability.SCREEN_OUTPUT"
                        },
                        {
                            "name": "actions.capability.WEB_BROWSER"
                        }
                    ]
                }
            ]
        }
    },
    "session": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA"
}

// ask for something after launch

{
    "responseId": "57e88d80-782b-4b6b-88af-00e580b50cf4-fd8ff490",
    "queryResult": {
        "queryText": "walk-in Center",
        "parameters": {},
        "allRequiredParamsPresent": true,
        "outputContexts": [
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/actions_capability_audio_output"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/actions_capability_media_response_audio"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/actions_capability_account_linking"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/google_assistant_input_type_voice"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA/contexts/_jovo_session_wpdol",
                "parameters": {
                    "closingMessageDisplayKey": "closingGeneric.display",
                    "closingMessageSpeechKey": "closingGeneric.speech"
                }
            }
        ],
        "intent": {
            "name": "projects/my skill/agent/intents/f7f991d3-2913-4bbb-8449-74a4c6780336",
            "displayName": "ClosestWalkInCenterIntent"
        },
        "intentDetectionConfidence": 0.8727113,
        "languageCode": "en"
    },
    "originalDetectIntentRequest": {
        "source": "google",
        "version": "2",
        "payload": {
            "user": {
                "locale": "en-US",
                "lastSeen": "2019-07-22T11:22:09Z",
                "userStorage": "{\"userId\":\"4fc5ce6e-e6e8-4450-b442-1b0058f21cb9\"}",
                "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg0ZjI5NGM0NTE2MDA4OGQwNzlmZWU2ODEzOGY1MjEzM2QzZTIyOGMiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYmYiOjE1NjM3OTQ2NzIsImF1ZCI6IjI3NzkwMTEyMjAwMy1rY3IyZXEzaDE2bWFhbmx1N2FqcDYzMzBlaGkwMDVrdC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInN1YiI6IjEwMzQ2ODg1OTgwMTA1MjU0MzQxMCIsImVtYWlsIjoibmF0cml4eEBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwibmFtZSI6Ik5hdGUgUmljaGFyZHNvbiIsInBpY3R1cmUiOiJodHRwczovL2xoNC5nb29nbGV1c2VyY29udGVudC5jb20vLW0xZjl4dXhkRDdzL0FBQUFBQUFBQUFJL0FBQUFBQUFBQVMwL0l0Q3k1SjJZT0ZBL3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJOYXRlIiwiZmFtaWx5X25hbWUiOiJSaWNoYXJkc29uIiwiaWF0IjoxNTYzNzk0OTcyLCJleHAiOjE1NjM3OTg1NzIsImp0aSI6ImQ5NzNmOThiZTAyMTM1ZGRjYTc0MTg1YzliZWQ3MjkyMzYwNGQ3YjYifQ.WH6VdH8VRWwPi5d70Ek9opaEu_z5zdThERko7zmI68kVqvacQrAQzFfWaXzNRUCmPq7e5DTCQCPVPcWgSuuS7yAoNBiglTf474vMq5yR_nNvGZFi8Y-ZgH2ZvymuV_FBxSNLHd9aWUHM1Wkf6nr3ORrA7Qt76YvVZTGpI4q5hGt-l4EvlUl8YjIBLVQyxwcFuiYzpR63rNnd0-HuJ-7TLVXRWwatauaxTFPXgWkgfhhVf6I8IqfM5SPbUJ8udd39012VWCg0ngB-8qtCb0EZTKRTi6GdsmoxGoAEcxmbv2MpjsumZLdmJZtaXtk_TgDiWH_2qrNZIJCcEsIPXULd4Q",
                "userVerificationStatus": "VERIFIED"
            },
            "conversation": {
                "conversationId": "ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA",
                "type": "ACTIVE",
                "conversationToken": "[\"_jovo_session_wpdol\"]"
            },
            "inputs": [
                {
                    "intent": "actions.intent.TEXT",
                    "rawInputs": [
                        {
                            "inputType": "VOICE",
                            "query": "walk-in Center"
                        }
                    ],
                    "arguments": [
                        {
                            "name": "text",
                            "rawText": "walk-in Center",
                            "textValue": "walk-in Center"
                        }
                    ]
                }
            ],
            "surface": {
                "capabilities": [
                    {
                        "name": "actions.capability.AUDIO_OUTPUT"
                    },
                    {
                        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
                    },
                    {
                        "name": "actions.capability.ACCOUNT_LINKING"
                    }
                ]
            },
            "isInSandbox": true,
            "availableSurfaces": [
                {
                    "capabilities": [
                        {
                            "name": "actions.capability.AUDIO_OUTPUT"
                        },
                        {
                            "name": "actions.capability.SCREEN_OUTPUT"
                        },
                        {
                            "name": "actions.capability.WEB_BROWSER"
                        }
                    ]
                }
            ]
        }
    },
    "session": "projects/my skill/agent/sessions/ABwppHFL9621DwBn8mlCpUJP7DTTkw6F627G_VJya6OookgXXNqB8ncahIrkrMXQ21lBFpEZd20sZA"
}

And here is a second launch and follow up request a couple mins later:

// Launch the skill

{
    "responseId": "a6cca4c9-fe81-482a-8086-4fa03ead59a8-fd8ff490",
    "queryResult": {
        "queryText": "GOOGLE_ASSISTANT_WELCOME",
        "parameters": {},
        "allRequiredParamsPresent": true,
        "outputContexts": [
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/actions_capability_media_response_audio"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/actions_capability_audio_output"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/actions_capability_account_linking"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/google_assistant_input_type_voice"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/google_assistant_welcome"
            }
        ],
        "intent": {
            "name": "projects/my skill/agent/intents/3e5a19eb-4476-48fa-90f0-0249d65e42fd",
            "displayName": "Default Welcome Intent"
        },
        "intentDetectionConfidence": 1,
        "languageCode": "en"
    },
    "originalDetectIntentRequest": {
        "source": "google",
        "version": "2",
        "payload": {
            "user": {
                "locale": "en-US",
                "lastSeen": "2019-07-22T11:29:42Z",
                "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg0ZjI5NGM0NTE2MDA4OGQwNzlmZWU2ODEzOGY1MjEzM2QzZTIyOGMiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYmYiOjE1NjM3OTQ3OTQsImF1ZCI6IjI3NzkwMTEyMjAwMy1rY3IyZXEzaDE2bWFhbmx1N2FqcDYzMzBlaGkwMDVrdC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInN1YiI6IjEwMzQ2ODg1OTgwMTA1MjU0MzQxMCIsImVtYWlsIjoibmF0cml4eEBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwibmFtZSI6Ik5hdGUgUmljaGFyZHNvbiIsInBpY3R1cmUiOiJodHRwczovL2xoNC5nb29nbGV1c2VyY29udGVudC5jb20vLW0xZjl4dXhkRDdzL0FBQUFBQUFBQUFJL0FBQUFBQUFBQVMwL0l0Q3k1SjJZT0ZBL3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJOYXRlIiwiZmFtaWx5X25hbWUiOiJSaWNoYXJkc29uIiwiaWF0IjoxNTYzNzk1MDk0LCJleHAiOjE1NjM3OTg2OTQsImp0aSI6ImQxZGRkNTM5ZmUyZTJhMzM4ZDhjNjQyYWE5OWY2ODg1NjhlNjRkMWYifQ.Ewe4xIgChRieldq9fSTbHNp7Lqx14DKSmDzOYvaOz4ReeEHJU1GuXS7HpTV1XlYzJx0h6-OAcAiwCR68w0eP8Zq7NY8_JrAAo0flbuT6YJQn6gTu8nwlQ6nS90tuNOZzGPdT1spCBuA9o_G8IEl6XLlrI161qV6Jy9yijweMZS_nYPAVITxBxnZcvuRiZneuqBtWAsM3gBptP_3Tlb-ld4eYUtC1n98QT1ftH6CPlxCBlb2IFOF423xUDrJgSzz0icHNR35qmZPckVUvcRI0uMnXp8VutCi5a1s80pDeTsKs-LMNToNanrsdonWAwHjOzLzIinZfMphbWUMcDx9ZQw",
                "userVerificationStatus": "VERIFIED"
            },
            "conversation": {
                "conversationId": "ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ",
                "type": "NEW"
            },
            "inputs": [
                {
                    "intent": "actions.intent.MAIN",
                    "rawInputs": [
                        {
                            "inputType": "VOICE",
                            "query": "talk to my skill"
                        }
                    ]
                }
            ],
            "surface": {
                "capabilities": [
                    {
                        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
                    },
                    {
                        "name": "actions.capability.AUDIO_OUTPUT"
                    },
                    {
                        "name": "actions.capability.ACCOUNT_LINKING"
                    }
                ]
            },
            "isInSandbox": true,
            "availableSurfaces": [
                {
                    "capabilities": [
                        {
                            "name": "actions.capability.WEB_BROWSER"
                        },
                        {
                            "name": "actions.capability.AUDIO_OUTPUT"
                        },
                        {
                            "name": "actions.capability.SCREEN_OUTPUT"
                        }
                    ]
                }
            ]
        }
    },
    "session": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ"
}

// ask for something after launch

{
    "responseId": "56e0048d-f4ee-435c-88b5-028216fdb268-fd8ff490",
    "queryResult": {
        "queryText": "walk-in Center",
        "parameters": {},
        "allRequiredParamsPresent": true,
        "outputContexts": [
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/actions_capability_audio_output"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/actions_capability_account_linking"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/actions_capability_media_response_audio"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/google_assistant_input_type_voice"
            },
            {
                "name": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ/contexts/_jovo_session_wtqob",
                "parameters": {
                    "closingMessageDisplayKey": "closingGeneric.display",
                    "closingMessageSpeechKey": "closingGeneric.speech"
                }
            }
        ],
        "intent": {
            "name": "projects/my skill/agent/intents/f7f991d3-2913-4bbb-8449-74a4c6780336",
            "displayName": "ClosestWalkInCenterIntent"
        },
        "intentDetectionConfidence": 0.8727113,
        "languageCode": "en"
    },
    "originalDetectIntentRequest": {
        "source": "google",
        "version": "2",
        "payload": {
            "user": {
                "locale": "en-US",
                "lastSeen": "2019-07-22T11:29:42Z",
                "userStorage": "{\"userId\":\"213dae20-3d28-4835-8238-005ba0aea9fc\"}",
                "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg0ZjI5NGM0NTE2MDA4OGQwNzlmZWU2ODEzOGY1MjEzM2QzZTIyOGMiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYmYiOjE1NjM3OTQ4MjksImF1ZCI6IjI3NzkwMTEyMjAwMy1rY3IyZXEzaDE2bWFhbmx1N2FqcDYzMzBlaGkwMDVrdC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInN1YiI6IjEwMzQ2ODg1OTgwMTA1MjU0MzQxMCIsImVtYWlsIjoibmF0cml4eEBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwibmFtZSI6Ik5hdGUgUmljaGFyZHNvbiIsInBpY3R1cmUiOiJodHRwczovL2xoNC5nb29nbGV1c2VyY29udGVudC5jb20vLW0xZjl4dXhkRDdzL0FBQUFBQUFBQUFJL0FBQUFBQUFBQVMwL0l0Q3k1SjJZT0ZBL3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJOYXRlIiwiZmFtaWx5X25hbWUiOiJSaWNoYXJkc29uIiwiaWF0IjoxNTYzNzk1MTI5LCJleHAiOjE1NjM3OTg3MjksImp0aSI6ImJmZTc2NWNjNmM4MTQ2MDFkMmYyMzQ3OGE1N2ZhNjM3ZTliMDIyNGIifQ.aLWlM5ouMBZA4iHpIupfknkhdCgr3YaTyKINQ75hY2yfkG8y-rmB9RXBHYkIfGUNjDR41sfE6PLvzq-RenaJqW0_XU38wBzWW0bL268h0NrWTs7v3bQBpm3A7dW2AHXDIWVa_Vr0RccY5nbjQIPlwubpck1XVuBXq13hojYu6ABiJ6NhtS7M-61vOVCc-oSFaUQr7JlkNJEWlzWdYm7ET7dBRkklPg7V-O-gy7BbIuAufaiBbV_ydBNm7mkHLjW2xr5LLbl1rlOzPeXcvCmJ12UwS7BGueITL7ruZrY7P306lrXk-qGwVSgF-tS4tZFbcyxWNWWFbwjsNTtCxHlUvQ",
                "userVerificationStatus": "VERIFIED"
            },
            "conversation": {
                "conversationId": "ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ",
                "type": "ACTIVE",
                "conversationToken": "[\"_jovo_session_wtqob\"]"
            },
            "inputs": [
                {
                    "intent": "actions.intent.TEXT",
                    "rawInputs": [
                        {
                            "inputType": "VOICE",
                            "query": "walk-in Center"
                        }
                    ],
                    "arguments": [
                        {
                            "name": "text",
                            "rawText": "walk-in Center",
                            "textValue": "walk-in Center"
                        }
                    ]
                }
            ],
            "surface": {
                "capabilities": [
                    {
                        "name": "actions.capability.AUDIO_OUTPUT"
                    },
                    {
                        "name": "actions.capability.ACCOUNT_LINKING"
                    },
                    {
                        "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
                    }
                ]
            },
            "isInSandbox": true,
            "availableSurfaces": [
                {
                    "capabilities": [
                        {
                            "name": "actions.capability.WEB_BROWSER"
                        },
                        {
                            "name": "actions.capability.AUDIO_OUTPUT"
                        },
                        {
                            "name": "actions.capability.SCREEN_OUTPUT"
                        }
                    ]
                }
            ]
        }
    },
    "session": "projects/my skill/agent/sessions/ABwppHEQA-4ExAYuMyUHz3OTh2dutgeURWM-dixV1Z6et1DYhK0MS3kEFbPuRzm2fsNUGiBuQOmIgQ"
}

#11

Also @jan - this is behaving as I seem to understand it should be now per: https://developers.google.com/actions/identity/user-info

My understanding is that even the old voice match userID approach is deprecated.


#12

Jovo uses webhook-generated User IDs that are then saved to userStorage. You can find it in the second request in each of your examples:

                "userStorage": "{\"userId\":\"4fc5ce6e-e6e8-4450-b442-1b0058f21cb9\"}",

The problem is that each new request didn’t come with a userStorage, so my assumption is that voice match isn’t activated (= userStorage is deleted after the session ends)


#13

@jan Its worth noting my action is not live. Per the note at the top of https://developers.google.com/actions/identity/user-info, as of June 28th, preview actions have removed the userId property and this will be for all actions starting this Monday.

That same page also leads me to believe that voice match being enabled no longer works as it once did. I do have voice match enabled as can be seen in the screenshot attached:


#14

Does anyone know if there are any new developments on this?

I am currently build a Goggle Action and each invocation of the skill on my test device generates a new userID which makes it difficult to debug different user flows.


#15

Does the request from Google Assistant always come with an empty userStorage object? If so, unfortunately it’s a Google problem and I’m afraid we can’t do anything about it on the Jovo side :frowning:


#17

@jonathanmuth I’m currently having the same problem and am in the process of breaking down why this is happening. Do you mind me asking you if you use a GSuite Account for testing?


#18

So, I suppose that saving to user storage any data is useless while speaking about different sessions, because each new session contains newly generated user id and data from previous step is forgotten. Am I right?


#19

@Alex_Popov Yes, that is right.
@rubenaeg Yes, we are using a GSuite Account for testing – it might have something to do with permissions.


#20

As far as I know, this has nothing to do with permissions. I use a private GSuite Account, and I got myself SuperAdmin Permissions. Still, Google Assistant is really limited for me, for example, I can’t use Google News or Reminders. I believe that this has something to do with collecting personal data, which Google won’t allow for GSuite Users, no matter the permission level. This is also the reason why you can’t store data persistently across multiple sessions. If you find a solution for this, please share it here, a current workaround would be to just use a private Google account.