How to reply back a user with his/her name using Dialogflow? - actions-on-google

I want to know how to reply back a user with his/ her name?
For example:
AppName: Hello, may I ask your name?
User: My name is John
AppName: Welcome John to $appname
I want to do this without webhook or fulfillment. I just want to do with Dialogflow.

If you want to use it in other intents taking this context as an input, you have to refer to it as #context_name.parameter_name like this :

You can create an Intent in Dialogflow that takes the user's name as a parameter. You then reference this parameter using $parameter_name in the reply string. If you want this maintained for future calls in your conversation, you can add an outgoing context. It might look something like this:

Normally you would send a permission request from the fulfillment code, but you can not do this from Dialogflow at the moment. You can only trigger a permission request from the fulfillment. By the way, even if the feature existed, neither Dialogflow or Actions on Google would save the info for you. So you would have to ask for it in each session. If you get it in the fulfillment you will need to ask for it only once because you can save it.

Related

Button function in a SendGrid Email to Trigger an external Webhook

forgive my naivete in asking this question, but I'm hoping someone can help me.
I have an email I send out through the SendGrid api using a dynamic template. The content of the email is different for each user I send it to (highly curated). I send products, their name, info, and a link to buy them.
I am looking to create a "LIKE" button next to each product for the user to interact with in the email and provide feedback on that product. That is, if they like that product but don't want to click to buy yet, they can hit "LIKE" and I'll be informed.
I am thinking I would do this through a webhook using something like integromat where a click of the button would trigger the webhook and then I would use something like airtable to update information.
Is something like this feasible? Would I just put the webhook URL in the href tag of a button? Is it possible to trigger the webhook AND then redirect to a window/tab that would acknowledge that the button was clicked?
Thank you for any feedback!
Links in an email will open a web browser outside of the email. This will make an HTTP request to the URL that you set as the HREF for the link (<a>). So, you can point that HREF directly at an endpoint on your own application and handle the request, storing the data about which user liked which product and rendering or redirecting the user to a confirmation page.
I think you may be complicating the idea by introducing the term webhook to this. I also see no reason you would want to include a third-party like Integromat to the proceedings.

Google Assistant expose incoming webhook

Is it possible to create a webhook on the google assistant that I can http post data to for it to broadcast?
I want to make a real simple application where I can send tweets from specific users to the assistant to read out loud.
That is a "yes, but" question. The Actions platform allows you to send notifications to users whom you have previously queried for permission and who have consented. When they pull down the notification and tap on it, your Action runs a special intent whose name was specified at the time you ask for permission. Details are here:
https://developers.google.com/actions/assistant/updates/notifications

Explicit Invocation that bypasses welcome message

I'm not sure if this is due to the Dialogflow testing environment, or if there is something else I am missing.
I have app ABC that has a default welcome message "hi" and also some intents for specific responses. I would like the user to be able to invoke a response by saying "Hey Google, ask ABC what is it's favorite color?" and have the intent passed to ABC. However, instead of answering the "what is your favorite color?" ABC responds with the default "hi".
Can I fix this or does the app have to first pass through the welcome message?
In the integrations section of Dialogflow check your integration settings for your Google Assistant action. There is a section there to add implicit invocations where you can select other intents that should be able to launch your app. Select the intents you want and then these should work

Required parameters - Either/Or

I created an "intent" that I want to collect some contact information from. I want either their phone number or email address. As most users don't want to give both, I want to make it required that they share one of the other.
Is there a way to do this from the web app? Is there a way to accomplish this thru fulfillment code? or is there any other way to achieve this?
The either/or (or better put the if/else) logic can be achieved via follow up intents like this:
Create an intent and ask your user if they rather give you their phone or their email
Create a follow up intent for when the user replies with 'email' and another follow up intent for when the user replies with 'phone'. At the 'Responses' in each intent, ask for the user's email or address accordingly and then follow up the conversation as you'd do with any other intents.
To create follow up intents, hover over an intent at the intents page and click at the 'Add follow up intent' option.
If there isn't a screen input, consider that it may be difficult for the user to input their emails so make sure you do appropriate checks that it is a valid email format and of course ask your users for confirmation (ex. the submitted email is xyz#app.com. Shall I proceed?)
In a given intent, you can enable "use webhook for slot-filling" to have Dialogflow call your webhook each time the intent is matched.
https://dialogflow.com/docs/fulfillment#slot_filling
In your fulfillment code, you can check the presence of either parameter and respond appropriately if neither is provided.

GDPR re-permission email

looking for a little advice on HTML emails and GDPR re-permission.
With the new GDPR regulations I have to create an email to send out to an existing list requesting their consent to continue contacting them.
My intention is to have an 'I'm in' button in the email, which when clicked takes the user to another page/url which has a simple form on it requesting the users email address and checkbox for them to tick to opt in.
My question is can I achieve this another more simple way. For example in the email itself when the user clicks the 'I'm in' button, can a post submission be made automatically with their email address, that gets sent to clients email, and they then just get re-directed to a standard success message. Is something like this possible? It would save having to create a form somewhere and make the process easier for the user.
I don't normally do HTML emails so I'm a little unsure - any help on this would be greatly appreciated, thanks in advance
Yes, you could embed their email in the query string of the URL and then have a webapp at that URL pick up their email from the querystring and process it. Obviously you'd need to code the webapp side accordingly.
E.g:
I'm in!
If you can still send an email to the user, the collection of consent can be quite simple. It will be sufficient to send each user an email containing a link to accept the newsletter (e.g. "Yes, I want to receive the newsletter"). The email should also contain the terms and conditions of the service, and the privacy policy. What come next can be either automated, or handled manually.
The best option would be to automate the process. This can be done in multiple way, the simplest being with a customized link for each user pointing to a website capable of interpreting the data transmitted by the link itself. To achieve this result, the link contained in each email should contain an identification code - which should be anonymized where possible - so that it will be possible to link the new consent to each user. In this way, when the user clicks the link, he or she will be taken to the website. At that point, the backend will be able to collect the code passed by the link, identify the user and, finally, re-subscribe the user to the newsletter.
In practical terms, in the email there could be a link with a value to be passed as a `GET« parameter:
Yes, I want to receive the newsletter
The server-side logic could be as follows (in PHP synthax):
// re-subscribe.php
$uuid = $_GET['uuid'];
$user = getUserByUUID($uuid); // assumed function that gets the user infos by a UUID
subscribeUser($user); // assumed function that re-subscribes user to the newsletter
echo 'Thank you!'
This could even be accomplished manually, provided that a link tracker service/tool is used.
In this – less ideal – case, in the email there should only be a single clickable link, the one required to express consent (e.g. "Yes, I want to receive the newsletter"). This link could take the user wherever deemed most appropriate. What matters, in this case, is the ability, through the tracker service/tool, to know which users have clicked the link. As long as there is only one link in the email, this would inform us that the user has expressed his or her consent, and thus we could manually re-subscribe them to the newsletter. In this case, the link to the terms and conditions and to the privacy policy should be included as static text, and not as an actual clickable link.
For more info, check out our blog post, inspired by this question, at blog.autoprivacy.eu/2018/05/newsletters-after-gdpr-existing-and-new.html