Kaizen #72 - Portal #APIs [Part I]

Kaizen #72 - Portal #APIs [Part I]

Welcome back to another week of Kaizen everyone! 
This week, we will be discussing the Portals API in Zoho CRM.

What are Portals in Zoho CRM?

Portals in Zoho CRM allow businesses to extend access to their CRM to external stakeholders, such as customers, partners, vendors or franchisees. Portals allow users to view, edit and create records within the CRM, depending on their level of access and permissions. This helps businesses to manage customer and partner interactions, share information and improve communication. 

Sample Business Cases:

In Health care Industry - If you run a health care facility, you can provide your patients the access to their medical records using portals. Through the portal, the patients can have controlled access to their medical records like their appointments, tests done and medication prescribed. Patients can request appointments, provide updates to their information, and request copies of their medical records through the portal. 

In a consulting firm - If you run a consulting firm, you would want to keep your clients updated about the status of their projects in real time. To do this, you can create a portal and share it with your clients. The clients can view the status of their projects, including the progress, the budget, and the schedule. Clients can view the updates and provide feedback on the project through the portal. 

In the automobile industry - If you have an automobile shop, and you want to track the customer details, your sold vehicle details and service schedules, you can create a portal and share it with your customers. They can view and update their details and book for services using through the portal.

Creating a Portal via API

Let us consider the context of the automobile industry. To create a portal for your customers, you can use the Create Portal API.

Request URL : {api-domain}/crm/v4/settings/portals
Request Method : POST
Scope : ZohoCRM.settings.clientportal.ALL/CREATE

Sample Input

 {
    "portals": [
        {
            "name": "ZylkerAutomobiles"
        }
    ]
 }

Input Keys

 Key Description
 name Unique name of the portal. 

Sample Response

 {
    "portals": [
        {
            "code": "SUCCESS",
            "details": {
                "name": "ZylkerAutomobiles"
            },
            "message": "Portal created successfully with given name.",
            "status": "success"
        }
    ]
 }

Update Portal via API

You can update the portal name via Update Portal API. 
Request URL : {api-domain}/crm/v4/settings/portals/{portal-name}
Request Method : PUT
Scope : ZohoCRM.settings.clientportal.ALL/UPDATE

For instance, the following request renames the already created portal ZylkerAutomobiles to ZylkerAutos.

Sample Input 

 {
    "portals": [
        {
            "name": "ZylkerAutos"
        }
    ]
 }

Input Keys

 Key Description
 name Unique name of the portal. 

However, changing the portal name will also alter the portal URL. As a result, it is crucial to communicate this change to all existing portal users.

Get Portals via API

At any point, if you want to get the details of all the portals configured in your CRM account, use the Get Portal API.

Request URL : {api-domain}/crm/v4/settings/portals
Request Method : GET
Scope: ZohoCRM.settings.clientportal.ALL/READ

Sample Response:

 {
    "portals": [
        {
            "created_time": "2023-02-07T20:13:20+05:30",
            "modified_time": "2023-02-07T20:13:20+05:30",
            "modified_by": {
                "name": "Patricia Boyle",
                "id": "4876876000000327001"
            },
            "name": "ZylkerAutos",
            "active": true,
            "zaid": "10052946888",
            "created_by": {
                "name": "Patricia Boyle",
                "id": "4875876000000327001"
            }
        }
    ]
 }

Response Keys

 Key Description
 name The name of the portal
 active Represents whether the portal is active or not.
 zaid The unique id of the portal.

Now let us consider the case where you may want to extend the portal access to beyond your customers. There would be multiple user groups you may want to extend the access to, including the employees and partners. For instance, you may want to share the portal with your employees to give them access to customer information, sales data and service schedules. If you have partners, you may want to share the portal with them to keep them informed about the customer behaviors, sales data etc. Each of these groups may require to access to different types of data within the CRM.

To accommodate the different needs and access levels of the different types of users, you may need to create multiple user groups in the portal. For example, you could create a user group for customers and another user group for employees. The business can then configure different permissions for each user group, allowing or restricting access to the relevant data in the CRM account. This way, each type of user will be able to access the information that is most relevant to them, without compromising the security and privacy of the rest of the data in the CRM account.

Get Portal User Types API

The Get Portal User Types API allows you to retrieve the user types available in the portal of your org. It is important to note that when you create a portal, the default user type Client Portal is added by default.

Request URL : {api-domain}/crm/v4/settings/portals/{portal_name}/user_type
Request Method : GET
Scope: ZohoCRM.settings.clientportal.ALL/READ

Sample Request : https://www.zohoapis.com/crm/v4/settings/portals/ZylkerAutos/user_type

Sample Response

 {
    "user_type": [
        {
            "created_time": "2023-02-08T11:56:16+05:30",
            "default": true,
            "modified_time": "2023-02-08T11:56:16+05:30",
            "personality_module": {
                "plural_label": "Contacts",
                "api_name": "Contacts",
                "id": "1306462000000000129"
            },
            "name": "Client Portal",
            "modified_by": {
                "name": "Patricia Boyle",
                "id": "1306462000083528405"
            },
            "active": true,
            "id": "1306462000001813022",
            "created_by": {
                "name": "Patricia Boyle",
                "id": "1306462000083528405"
            },
            "no_of_users": 1
        }
    ]
 }

Response Keys

 Key Description
 default Represents whether the user type is the default one for the portal.
 personality_module Details of the module for which the user type was configured.
 name The name of the user type.
 active Represents whether the user type is active or not.
 id The unique id of the user type.
 no_of_users The number of users in the portal assigned with this user type.

Invite users to Portal via API

Once the portal is created, you can invite the customers to join the portal using the Invite Users to Portal API. This provides the customers with access to the information regarding their automobile including the servicing details, and their information.

Request URL : {api-domain}/crm/v4/{personality_module}/{record_id}/actions/portal_invite
where, personality_module is the API name of the module for which the portal was created and record_id is the ID of the record that you want to invite to the portal
Request Method : POST
Scope: ZohoCRM.settings.clientportal.ALL/CREATE

Parameters

 Parameters Parameter Description
 user_type_id : integer, mandatory
 The id of the user type you want to assign the user with. 
 type : string, mandatory
 Represents whether the user is invited (invite) the first time or is re-invited(reinvite).
 language : string, optional
 The language code of the user you want to invite to the portal

Please note that for the client portal user type, you can invite only clients/customers and not users with the same email domain like your employees or partners. 

In this sample request, 1306462000000659009 is the record id of the customer in Contacts module, and 1306462000001813022 is the user type id.

Sample Response

 {
    "portal_invite": [
        {
            "code": "SUCCESS",
            "details": {
                "record_id": "1306462000000659009"
            },
            "message": "An Invite has been sent to the personality.",
            "status": "success"
        }
    ]
 }

Get Users of a User Type API

The Get Users of a User Type API enables you to retrieve the list of users available in a specific user type of a portal.

Request URL : {api-domain}/crm/v4/settings/portals/{portal_name}/user_type/{user_type_id}/users
Request Method : GET
Scope : ZohoCRM.settings.clientportal.ALL/READ

Parameters

 ParametersParameter Description
 type : string, optional
The type of user. Possible values are AllUsers, AllActiveUsers, ActiveUsers,  DeactiveUsers, NotConfirmedUsers, ConfirmedUsers, and ActiveConfirmedUsers.
 filter : JSON object, optional
To filter based on the value disabled on updation of email of the status_reason__s field in the Users module. The allowed comparators are equal and not_equal. Note that you must encode this JSON object.

The following request retrieves the details of users in your ZylkerAutos portal, with Client Portal user type.

Sample Response

 {
    "users": [
        {
            "personality_id": "1306462000000659009",
            "confirm": true,
            "status_reason__s": null,
            "invited_time": "2023-02-08T18:03:10+05:30",
            "module": "Contacts",
            "name": "Jennifer Spears",
            "active": true,
            "email": "jennifer.spears@abc.com"
        }
    ],
    "info": {
        "per_page": 200,
        "total_count": 1,
        "count": 1,
        "page": 1,
        "more_records": false
    }
 }

Response Keys

 Key Description
 personality_id The id of the module for which the portal was created.
 confirm Represents whether the user is a confirmed user or not.
 status_reason__s The reason the user is disabled.
 module The API name of the module for which the user type was created.
 name The full name of the contact.
 active Represents whether the user type is active or not.
 email The email ID of the contact of that user type.

We will discuss more on user types and users in next week's post. We hope you found this post useful. 
Write to us at support@zohocrm.com if you have any questions.
    • Recent Topics

    • Zoho One - White Label

      Releasing a white-label feature for Zoho One, or any software or service, can offer several advantages and benefits for both the company providing the software (Zoho in this case) and its users. Here are some key reasons for releasing a white-label feature
    • Are this Features included in the Road Map

      1. Sync between description/short description in Zoho Books/Inventory and Zoho Commerce: I am unsure how it works now. I belive the description is not pulled. 2. Pick Up: This feature is great. It is added on Zoho Commerce but not on Books/Inventory which
    • Reconciliation - Show Transactions After End Date

      I did a quick search, and I've only seen this brought up indirectly. In the reconciliation interface, transactions dated up to a week after the end date should be available for being reconciled. The use case is pretty simple... many times, transactions
    • Auto populate email field in zoho form

      Hi,  Is there a way the email field in zoho forms can be auto populated based on the name selected from a drop down list?
    • Option to accept and pay for estimate from Public Estimate link?

      Is there any way that our customers can get the Estimate in their email, click on "View Estimate" and from the public link, click Accept and Pay? When they click that, in the background Zoho would create the invoice record in the so that the payment would
    • Kaizen #125 Manipulating Multi-Select Lookup fields (MxN) using Zoho CRM APIs

      Hello everyone! Welcome back to another week of Kaizen. In last week's post in the Kaizen series, we discussed how subforms work in Zoho CRM and how to manipulate subform data using Zoho CRM APIs. In this post, we will discuss how to manipulate a multi-select
    • Easily track referrals with Zoho Forms

      Referral tracking can be a powerful way for businesses to understand where their leads are coming from. With Zoho Forms, tracking the referral sources of your leads is an easy and straightforward process. Here are some tips to help you make the most of
    • Add an email to an existing ticket is not working

      I noticed that in Zoho Desk the funcionality to add an email to an existing ticket is not working using the syntax [##12345##], has the method changed? In red is the syntax we use to add email to an existing ticket As you can see, he did not add the email
    • New CRM to Campaigns Sync Doesn't Continue Making Updates

      Changes made in CRM are not appearing in mapped fields in matching Campaign records after migrating to the new sync process. The only way we've found to get records to update is to call into Support and point out the problem. After convincing Support
    • Zoho Integration with UPS

      I have 2 questions: Firstly, is there a way to notify UPS that we have a package to collect once we have done the shipping label? Secondly, how do I get the tracking number and shipment method onto the Invoice and Package Slip for the customer? Than
    • Cannot log in to IMAP account as of last night

      Hey I've been using MFA with an authenticator for a while and have had to use application passwords for Outlook and Edison Mail on my Android devices. Last night the app passwords started to be rejected on my Android devices so I created new ones for
    • Low Stock View

      We use the Low Stock view frequently as a guide to inform us when to reorder items, but the view is misleading because it does not take into account Purchase Orders that have already been raised. Unless you are aware and check item by item, this can lead
    • Improve History Feature in Zoho Inventory

      At present there is a "history" tab on Zoho Inventory Items, however this only shows a date and time stamp along with the users name. It doesn't say what was changed. What is the value of this if you can't see what was changed? My Ideal is to include
    • Show backordered items on packing slip

      We send out a lot of large orders, and often there are one or two things backordered. How can I fix the packing slips to show quantity ordered  & quantity packed There should also be the ability to "ship" 0 of an item so the receiver knows that things
    • Document | Files

      The vendor "Partial matches" still not fixed here after years of putting up with having to select most vendors manually ! ( again, the banking "Transaction rules" would solve a lot of these issues ) Some unwanted, irrelevant pdf's also arrive. It would
    • books+POS+ tap to pay+ stripe

      So in the UK we now have tap to pay with stripe. So we can use the stripe app as a POS terminal. Brilliant news. Can we hope that the Books App might add this feature ASAP. It would be great to have one system rather than using the not very good Square
    • Canvas Form View - Client Script Page on load - Url params not working

      We have a custom module with a canvas page for form view. We have a button in Customers module to open this canvas page using invokeurl function. We send few parameters as in the URL as query parameters. https://crm.zoho.in/crm/orgxxxxxxxx/tab/CustomModule12/create/canvas/64333200000261xxxx?layoutId=643332000002605001&c=${Customers.Customer
    • Sending Recruit SMS's to Zoho Cliq - Or tracking in the Messages module in Recruit?

      Is there any way to send SMS Gateway messages in Recruit to ZOho Cliq? We use 2-way SMS massages a lot in Zoho Recruit to speed up communication with Candidates. However the only way to keep track of received SMS's is by keeping a look out for the Email
    • This mobile number has been marked spam. Please contact support.

      Hi Support, Can you tell me why number was marked as spam. I have having difficult to add my number as you keep requesting i must use it. My number is +63....163 Or is Zoho company excluding Philippines from their services?
    • Zohomail does not support additional fields in mailto links

      Hello, I set up Zohomail as default composer in Firefox according to manual here: https://www.zoho.com/mail/help/defaultcomposer.html#alink2 Later, I wanted to use this functionality to answer in a Linux mailing list thread using mailto link: mailto:xxxxx@kernel.org?In-Reply-To=%3C727o0521-q24p-s0qq-66n0-sn436rpqqr1p@example.com%3E&Cc=xxxxx%example.org&Subject=Re%3A%20%5BPATCH%20v2%28%29
    • Is it possible to set a customer context variable in Zobot

      Hi, I want to use a context variable to route users down different paths in my Zobot chat flow. I know I can do this when the user enters data. But I want to know if I can use a variable that is 'hard coded' on the card, that the user is unaware of. Use
    • Cannot change Blog Title

      There is nowhere to change the blog title. You can change the blog URL but that is making no difference to the text "Enter Your Post Title" am I missing something?
    • Kaizen #203 - Answering Your Questions | Handling API Limits and Error Responses

      Hi Everyone, Welcome back to yet another post in the Kaizen Series! We appreciate your keen participation in the 200th milestone celebration of the Kaizen series. We will continue to answer the queries we received through the feedback. When working with
    • How to verify website ownership with google search console

      Hi, I am having a free .in domain provided by Zoho I have created a website on it now I want to verify my ownership to google webmaster. Can you please help me how to do that.
    • Kaizen #89 - Color Coding using Client Script

      Hello everyone! Welcome back to another exciting Kaizen post. Today let us see how you can apply color codes to the List and Detail Pages of Zoho CRM using Client Script. Need for color code in Zoho CRM When you mark things with different colors as a
    • "SPF record exceed the allowed limit of 10"

      Hi, I was wondering if there were a "universal Zoho SPF record" that would allow all my configured Zoho services that email things to meet this limitation ? or do I have to have an entry for mail, com, billing, etc?
    • Zoho Mail android app update: Block & reject future emails, Report phishing, Spam alerts, Suspicious URL detection

      Hello everyone! In the most recent Zoho Mail Android app update, we have brought in support for the following features: Block & reject future emails Report Phishing Spam alerts in the mail details screen. Suspicious URL detection. Block & reject future
    • Animated GIF Images in Chat

      I know this seems to be a small feature request but in a recent Cliq update Zoho disabled autoplay for animated GIFs posted in Cliq conversations. We think this was not a good change. In our organization, animated GIFs in a chat play a role in expressing
    • I can't seem to login in to Mail Apps of MacOS /IOS

      Hi, i'm having trouble in signing in to mail apps from IOS. It's always come back to wrong passwords. But i already changed my password like 3 times. But still it says wrong credentials
    • Profile Image Showing Incorrectly in Zoho Mail

      Hi everyone, I’m facing a serious issue with Zoho Mail. The profile image showing for my email address is incorrect — it’s not my image. When I send an email to my Gmail account, it displays someone else’s image. This looks very suspicious and can make
    • I need access to my old email

      I need access to my old email bromzeman@zoho.com to verify it for forwarding. I can’t access the inbox to get the confirmation code. Please assist with recovery or forwarding. as you might already know, they made alot of the email addresses to have that
    • Set Defaults for Email Groups

      Is there a way to set defaults for all of the groups that I establish as a moderator? For example, I want every group I establish to have the following settings: 1. Moderator is <user> 2. User is <user>, <user> 3. Notifications for new group turned
    • LOGS FOR RECEIVED MAIL ( READ DATE & TIME)

      In Zoho mail we can extract the read logs of received mails so that we can see when we have read the mail and at what time & we have read it.
    • Domain verification probem

      Hello, i use a domain from Namecheap with hosting from Cinfu when i try to verify my domain on zoho i get "TXT Verification failure" i even tried the HTML verification and the code appears but also giving me the verification failure error.
    • Switching to Cloudflare email routing from Zoho Mail

      Hello, I'm currently working on migrating from Zoho Mail to Cloudflare's email routing solution. This requires changing MX and TXT records for our custom domain - when we do this, will our users still be able to log into their accounts and access an archived
    • Un Subscription Button

      How can i Add the Un Subscription Button in Zoho mail
    • Documents unable view and need to downlad

      I can't view .doc files in Zoho mail unless I download them, but I can view PDF files without downloading.
    • we encountered a problem while sending your email. please try again later.

    • Adding and removing people from groups

      We're having problems adding people to a group. Apparently Zoho has one email address and will not recognize a different email address.
    • MAIL SEARCH IS NOT WORKING

      THIS ISSUE HAS BEEN BUGGING ME SINCE MORNING, PLEASE RESOLVE THIS AT THE EARLIEST
    • Next Page