All Collections
Share & embed maps
[Zoho Creator] Build customer portal with personalized map using Zoho Creator in 10 minutes
[Zoho Creator] Build customer portal with personalized map using Zoho Creator in 10 minutes

A step-by-step guide to creating a customer portal with an embedded personalized map with Zoho Creator

Sergey Shurygin avatar
Written by Sergey Shurygin
Updated over a week ago

This 10-minute guide will help you configure a Zoho Creator customer portal (the "Portal") with a personalized map created within the frame of this guide. This Portal can be used with any CRM, like Zoho CRM, or any other IT system. If you're using it with Zoho CRM, you may follow this guide to set up automatic registration of new customers in your portal.

Summary of implementation steps

We are going to do the following:

  1. Create a Zoho Creator application.

  2. Create a Customer object (or, in Portal terms, a "form") that will store the signed personalized map link of each customer.

  3. Create a Map web page with an iframe that will load the map link of the currently logged in Customer identified by their email.

  4. Enable the Portal and grant their users access to the Map page.

  5. Create workflow(s) in your CRM (or Mapsly) that will automatically create a new Customer record in the Portal, when a new customer is created in your CRM (or Mapsly).

  6. Create a Zoho Creator workflow that will automatically register new Customer record as a portal user.

  7. Test your Portal by creating a test user in your CRM and logging into your Portal using their email.

1- Create a Zoho Creator app:

2- Create a new Blank form: Customer

3- Add a new page: Map

Add an HTML snippet:

Paste this code to the HTML snippet:

<%{fet = Customer[Email == zoho.loginuserid];%>
<iframe src=<%=fet.Map_link%> allow="geolocation; clipboard-read; clipboard-write" style="width: 100%; height: 800px">
</iframe>
<%}%>

4- In your Zoho Creator app, navigate to Settings -> Customer portal:

Add a customer permission set Customers and check the Map checkbox while leaving all others unchecked:

5- Create a workflow that will automatically register new portal users:

When a new customer is added to the CRM, they should be automatically registered in the Portal and a new Customer record should be created in the Portal with their personalized map link.

If you are using Zoho CRM and your Zoho Creator is in the same Zoho organization, the easiest way to do it is through a CRM workflow, because both your CRM and your Zoho Creator are parts of the same suite of apps and you can manipulate Zoho Creator data directly from your CRM. Follow this guide to automatically register customers in the Portal from your Zoho CRM.

If you are using another CRM or any other data source with Mapsly, you'll need to configure a Mapsly workflow with an Invoke URL action that will call Zoho Creator's Add record API endpoint directly. Contact Mapsly support for help with setting them up.

6- Go to Workflow and press Create Workflow:

Paste the following code into the function:

profile = thisapp.portal.profileForUser(input.Email);
if(profile == "")
{
thisapp.portal.assignUserInProfile(input.Email,"Portal user");
sendmail
[
from :zoho.adminuserid
to :zoho.adminuserid
subject :input.Email + " has been added to portal"
message :"<div>" + input.Email + " has been added to portal<br></div>"
]
}

This function checks if the user with provided email is already registered by trying to fetch their profile name, and if not, it registers this customer as a new portal user and sends a confirmation email to the Portal administrator. The customer will immediately get an invitation email to log in to the Portal and generate their password.

Press Save to save the script, and then press Done to save the workflow:

IMPORTANT! Per Zoho Creator terms and conditions, you won't be able register portal users with emails that include domains which are mentioned in ANY of your Zoho users. Otherwise you will get this error:

When testing your portal, be sure to use emails on generic domains (like Gmail).

Learn more

Did this answer your question?