How to prompt users to accept updated terms and conditions? - keycloak

Terms and conditions are only presented when a user first registers. If the terms change, we will need to present the user with the updated terms at log in. But I can't see a way to make this happen.

After enabling Terms and Conditions (Authentication -> Required Actions), you then have to make it a required action on a per user basis (Users -> <find user> -> Details -> Required User Actions).
In theory, you could check the "Default Action" checkbox to add it as a required action for all new users, but I couldn't get that to work. This might be because we are not permitting users to self-register.
If you are onboarding users manually (ie not letting them register themselves) then you will have to add this action to each user individually as part of that process. When the user accepts the terms, the required action will be removed. When the terms change or you need the user to accept them again, you need to update each individual user again, adding the required action to each one.

Related

Keycloak - Blocking Terms and Conditions in both Manual and IDP registration flows

I currently have a problem configuring my Keycloak instance. I successfully customized the registration form to display some required informed consent that the users should read and accept to complete the registration. I achieved this by adding a mandatory "accept all" radio button before the "email" and "password" input boxes.
registration terms and conditions
At the same time I also wish to provide a registration flow through Facebook. The problem in this case is that the user is automatically registered without any chance to read the aforementioned agreement. I already tried customizing the default terms and conditions page offered by Keycloak, but the "decline" choice is not blocking for the registration process. In other words the terms and conditions are displayed when the user has already been created.
My questions are:
How should I add a custom blocking "agreement form" also for the registration through Facebook?
Should I also split the agreement from the part in the manual registration? If yes, why and how?

Handle No Match input with custom logic in Confirmation Intent using Actions SDK

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.

Triggering user required action from user self service panel

Is it possible to trigger user required action from keycloak user self service panel ( -/auth/realms/REALM/account ) ?
I've added the step for configuring mobile number (Actuall, taking ready project https://github.com/gwallet/keycloak-sms-authenticator and adding SMS code check step) and the phone number is configured first time the user logs in, but it is failing the possibility for user to change his number afterwards.
I can't simply add phone number to account panel, because the flow forces user to enter code sent with SMS, and then saves the number to user account. Without the flow defined by required action the user could make a typo and not be able to log in ever again.
Is it possible to add button / link with custom action triggering UserRequiredAction?

Unable to communicate instructions for action resubmit that was already approved

My action was approved with Action Tagging. However after some time, I got a message that action tagging is not valid for my app and to consider using mention tagging. Currently the status is:
Approval Status: Available to users (changes needed) This Action Type
is available to all users, but your most recent submission needs
changes.
Capabilities Status:
User Messages (Live) - Allow users to write a personalized message attached to this action.
Tags (Needs Change) - Allow users of my app to tag other users for this action.
Explicitly Shared (Live) - This action can specify the user explicitly shared an action.
So I implemented mention tagging, but each time I re-submit, I get the following response:
We are unable to tell which additional properties you are requesting.
Please specify if you are planning to implement action tagging,
mention tagging, or both. If you are requesting mention tagging you
must select both the user message and tags action properties when
submitting your action. If you are requesting both action tagging and
mention tagging we will need to be able to reproduce both action
properties. For further information, please see here:
https://developers.facebook.com/docs/opengraph/submission_criteria/action_properties/#mentiontagging
Of course on resubmitting I explain very clearly that I want mention tagging and I show the steps to reproduce. I also have selected both the user message and tags action properties. It just seems that the testers simply ignore the message I write in the re-submit dialog.
I also puzzles me that the re-submit dialog has only the first step that you type in how to reproduce the action. It lacks the extra edit boxes that the normal submit dialog had the first time where you explained about the additional properties.
Maybe some kind of bug in the resubmit dialog of an already approved action (that needs changes in the additional properties) does not allow me to write the message I need?

Form Journey Tracking using google analytics

Is there anyway, using google analytics, to track a user's journey/selections through a long form so I can see where they drop off?
I've created a 'contact us' form which starts with drop down menu which requires the user to make a choice i.e. apply for job, apply for funding etc. and then each option requires the user to fill out a form, which is completed over serval steps.
Is there a way to track a user's individual form choices from their initial selection on the Contact Us page through to the form being submitted? That way I could see where in the form journey the users are dropping off.
If the form is a multi-page form, then you can use Goal Funnel tracking to obtain reports which will help you understand how users fail to complete the form:
http://www.google.co.uk/support/googleanalytics/bin/answer.py?hl=en-uk&answer=55515
The Regular Expression matching in Goal Funnels is quite useful if you have different paths or different form URLs for the same goal. You could also track multiple page views per actual URL, if you wanted to monitor the users who move onto a different step on a single URL.
If you need to analyze how users complete a particular form, you could use Event Tracking to record when each field is completed. You will need to carefully think about how you wish to use Event Tracking to obtain the information you require.
http://code.google.com/apis/analytics/docs/tracking/eventTrackerGuide.html
But Google Analytics is not good at tracking individual users' behavior. You may wish to take a look at ClickTale if you want to do more advanced form usage analysis.