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.
Related
First part of the question
I’ve registered in Mautic a number X of contacts via API from my main website, all those contacts have basic info including their name and id (I do not have their IPs). Now, I will send all of them a SMS with a link to a landing page. I want to register exaclty which of those X contacts are visiting the page.
I have to mention that a campaign exist for tracking this process. So, when a contacts visits the page, some actions or validations will ocurr.
What should I do to make Mautic know which contacts from those X are visiting the page?
My idea
Send the URL with a specifc parameter that somewhat allows Mautic to understand which one of the contact visited.
Is this possible? Do you consider there is a another way?
Second part
I have a form with one field on the page that register a cellphone number. I wish to register which contact is registering the number.
How can this be achieved?
My Idea:
I am thinking of adding another field asking the contact id, so the contact has to fill that in order to send the form
If you append the link sent via SMS with a ?email={contactfield=email|true}, the Mautic tracking pixel (cookie) will pick up this email when the user lands on the page and collapse the anonymous tracking session into the identified tracking session.
I haven't tested if you can also do this with SMS numbers or with contact IDs.
We publish our best practices for this, here: https://facetinteractive.com/blog/the-ultimate-mautic-setup-guide#emails
I'm trying to make my IBM chatbot asking the user question
ex: what's your name?
but there's no choice in define customer response to make it wait for the user answer, it just either options or numbers.
you define a customer response only if there is a special structure (e.g. options) or some special validation ( precentage).
When you model an action there is no need to wait for an arbitrary text from a user, as the intent is already set when the user entered the action.
Therefore in each step it is expected you collect some information from the user.
When I use the Confirmation Helper Intent on an Actions SDK project, it works as it's supposed to. But I want to handle the case when the user's input doesn't mean either yes or no (a No Match situation). Currently Assistant automatically re-prompts the user in this situation.
Actions SDK provides the user's actual input when a confirmation is granted or denied. But is there any way to know what the user said in a No Match situation?
For example, let's say, in a Confirmation prompt, the user says: "I just need some eggs. Just give me some eggs". This would cause Assistant to show the same prompt to the user again. It happens automatically and I have no way of accessing what the user actually said. If I want to do something when the user says "I just need some eggs" I can't do it because I can't access what the user is saying. Moreover, I haven't seen any Intent getting fired in this situation.
So, how can I handle No Match situations with custom logic instead of giving the default re-prompt to the user?
The easiest way is to not use the confirmation helper and just create Intents that handle "yes" or "no" equivalents yourself.
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
Does SendGrid support double opt-in to Lists as a feature or is that something we will have to implement for ourselves?
https://sendgrid.api-docs.io/v3.0/contacts-api-recipients/add-recipients
It doesn't appear to me to be anywhere in the docs, but I thought I'd ask in case I missed it.
Not as of the current date; I asked their support staff and received the following answer:
Double opt-in needs to be implemented by you in the form/page you're subscribing your recipients. The confirmation email can be sent through SendGrid.
For Marketing Campaigns we have the SendGrid’s WordPress Subscription Widget that makes it easy for people visiting your WordPress site to subscribe to your marketing emails;
or Building a SendGrid Subscription Widget.
I got this answer from their support. It turns out we have to implement it by ourselves.
The double opt-in functionality is not something SendGrid provides as
we expect our customers to handle any opt-in practices on their side.
We apologize for any inconvenience.
SendGrid will be GDPR compliant by May, 25, 2018. Please note that
SendGrid does not – and does not currently have plans to – use servers
or data centers in the European Union to process email. Thus, SendGrid
cannot restrict data to the EU. However, neither current EU law nor
the GDPR require this. Instead, what is required is that SendGrid must
provide "appropriate safeguards" for data that it hosts and processes
on its US servers (see Art 46 of the GDPR here). SendGrid offers a
Data Processing Addendum (DPA) to provide such adequate safeguards,
which includes provisions for when GDPR goes into effect.
More info on GDPR can be found here. Our DPA can be reviewed and
signed by filling out the information here.
They do not support it. I asked support many times, which is a strange as it would seem a company of that size could spare the dev resources to build a feature that literally all of their customers need.
However, https://sgwidget.com is a third party product that provides double opt in functionality for Sendgrid accounts.
Full Disclosure: I am a developer at SG Widget.
No, indeed still today, they do not. Not in their forms, nor in their API is there simple, flip-switchable support for double opt-in. But, with email automation fairly recently implemented in their marketing services ("free" and "advanced" plans, not "essential") you can send an automated email directly upon sign-up.
My solution is to have 2 lists for new contacts, where one is a "pre-confirmation" list and the other being the "real" list. Here´s a way to use automation:
Create initial signup form, either via their sparse Web forms or via your own, using HTML/JS/PHP and API endpoint:
Create 2 separate lists, one for "pre-confirmation" emails and the other for people who confirm their addresses.
Make the form sign up new contacts to the first list, "pre-confirmation".
Create a marketing automation flow that triggers upon new signups to the "pre-confirmation" list. Make the automation trigger an email that contains a button or a link with the following link structure:
https://yoursite.com?email=user#email.com&passphrase=[phrase-you-set-manually]
where ?email= is your user´s email, substitute this in the email template/design by {{ Sender_Email }}
where &passphrase= is a phrase long enough to not be guessed. Since you only have one single email design here, and you can only enter one single phrase, unless you make a script or a hash, you make it difficult enough for people to think it was generated by a server :).
On your server/application, yoursite.com, use $_POST['email'] and $_POST['passphrase'], or whatever you name them, to validate the email clicks from your list and then enter all validated emails to the correct list using the PUT
/marketing/contacts endpoint.
you may also have to delete the user from the previous list, using DELETE
/marketing/lists/{id}/contacts, but I do think that the PUT /marketing/contacts takes care of placing the contact in only the lists specified in the list_ids field.
once the contact has been entered into the correct list, you can also have a marketing automation set up for that list, which sends him/her a welcome message.
This method takes care of double opt-in for SendGrid without using one single email credit from the Email API (transactional plan). The only catch is that we utilize one initial and one second/final list to achieve it.
Note: the initial sign-up message that here acts as the "confirm your email" message, will be tied to the first list and will require a marketing unsubscribe link in the footer. Make it clear in the bottom of the email that it is a temporary list, to not get any spam complaints. But it will not be an issue, as we wont be sending to anyone in that list except for this initial time. Unless you have a user who enters his/her email twice, after some time of inactivity when they forgot they already signed up. That could happen. But it´s a separate issue.
I think this is possible by switching the flow of a typical email subscriber. When the user clicks your subscribe button, instead of calling the sendgrid members/contact PUT api to add to your list, send an email with a link to a URL of yours that will then trigger the members/contact PUT api call.
Not sure what stack you are using but I was able to build something like this with next.js utilizing their api routes