Topics and lessons

Building an admin function to log in as a different user

In this lesson:

  1. Introduction
  2. Step 1: split users and persons
  3. Step 2: modify data item User
  4. Step 3: create the flow part to take over a person
  5. Step 4: create the flow part to restore the situation
  6. Step 5: modify user flows
  7. How to check for irregularities

Introduction

If users have questions or encounter problems, the helper sometimes can understand the user better when he can see exactly the same as the user. You can achieve this by taking over the account of the user.

The prerequisites are that your application contains the data items User and Person (check the article about splitting users and persons for an explanation).

What will happen:

  1. In order to recreate the situation when the helper is finished, the persons who are the owner of the accounts must be saved in the data item User.
  2. After that, the application links the person that will be taken (the helped person) over to the user-account of the helper.
  3. This means that while the person is taken over, he can remain signed in or sign in during the operation, but he can’t see his person-related data.
  4. The helper remains signed in with his own account, so he has his own roles, but he can't see his personal data.
  5. The helper can see the data of the helped person and he can act as if he were him.
  6. Afterwards, the original relations between the user accounts and persons that ‘own’ them are restored.

Step 1: split users and persons

If you haven’t done this yet, refer to the article “Splitting users and persons” in our Knowledge base.

Step 2: modify data item User

Add the True or false property May take over persons.

Note: you might already have the property Is admin. Don't use this: the persons who will be allowed to take over a client might not all be admins.

Step 3: create the flow part to take over a person

  1. Add 2 inputs: the helping user and the helped user.
  2. When you have finished helping, you want to restore the situation. Therefore you must save the owner of the helped account in Person that owns the account.
Edit item. Triggre no-code web app builder.
  1. Do the same for the helping user.
Edit item. Triggre no-code web app builder.
  1. Now the original owners of the accounts are safely stored, you can link the helping user account to the owner of the helped user account.
Edit step. Triggre no-code web app builder.
Edit person. Triggre no-code web app builder.
  1. To prevent disputes later, it is a good idea to add the action to a log.
User flow. Triggre no-code web app builder.

Step 4: create the flow part to restore the situation

  1. Add 1 input: the helping user.
  2. Check if the Account owner of the helping user is empty. If so: the helping person is not taking over a person. End the flow.
  3. If there is a value in Owner, find the user account of the helped person (the person that owns the account of the helped User = the Person in the account of the helping user).
Formula. Triggre no-code web app builder.
  1. Copy the Owner of the helped account to Person of the helped account. Now the helped user and his account are linked again.
  2. Clear the Owner of the helped account. This is the signal that the user is not being helped.
  3. Copy the Owner of the helping account to Person of the helping account. Now the helping user and his account are linked again.
  4. Clear the owner of the helping account. This is the signal that the user is not helping.
  5. To prevent disputes later, it is a good idea to add the action to a log.
User flow. Triggre no-code web app builder.

Step 5: modify user flows

Modify the user flow Persons:

  1. In the user flow where you manage the persons, include a button that is only visible when the property May take over persons in User is true.
  2. This button calls the flow part Take over a person, followed by a page on which you tell the user what just happened.
Page. Triggre no-code web app builder.
  1. Add the button Got it that connects to the user flow My profile or another one that the person normally opens.
  2. Insert the flow part When needed split helper and helped person right after the start of the user flow. This will restore the situation.
User flow. Triggre no-code web app builder.

Sometimes helpers forget to restore the Take-over situation by returning to Persons. This can lead to unwanted situations.

Therefore, it is advised to include the splitting flow part at least in the first user flow the user will see when they log in. This way, the application checks if there is a helping situation going on and it can end it when the helper has left the user flows of the helped person.

User flow. Triggre no-code web app builder.

How to check for irregularities

It can happen that a take over is not flawlessly restored. This leads to the situation that a user can't reach his data. We advise you to store a copy of the User email in the data item Person. This makes it easier to find the ‘lost’ user account of the person.

Once you have done that, you can search for Persons whose email address differs from the linked user account, or active users who are not linked to a person.

You can perform these searches manually, for instance by including it in your User management flow.

Tip: By following these steps you'll soon be an application building guru!