Zoho Desk
Overview
This integration is dedicated to importing Tickets from your Zohodesk portal into Birdie. Below are key details about what we need to set up the integration and how tickets and data are imported.
Requirements
Access and Refresh Tokens
Birdie's integration with the Zoho Desk API requires a Refresh Token that can be acquired by following the necessary authentication steps. Zoho Desk's APIs use the industry-standard OAuth 2.0 protocol for authentication and authorization. This protocol delegates user authentication to the service that hosts the user account and authorizes third-party applications to access the user account. For more information, see the documentation.
There are 2 types of tokens:
Access Token: provides secure and temporary access to Zoho Desk APIs and is used by the applications to make requests to the connected app. Each access token will be valid only for an hour and can be used only for the set of operations that are described in the scope.
Refresh Token: A token that can be used to obtain new access tokens. This token has an unlimited lifetime until it is revoked by the end-user.
Setup in Zoho Desk
This means that in order for Birdie to be able to access your data automatically, we need a Refresh Token and the process to generate one is:
Register your Application
At Zoho API Console, choose Server based client and enter the following details:
Client Name: The name of your application you want to register with Zoho. We suggest using “Birdie App” for easy identification.

Zoho API Console: Applications page

Zoho API Console: Add Client pop-up options
Homepage URL: The URL of your web page. It doesn’t necessarily need to be one of your company’s domain, so we suggest using ours:
https://birdie.aiAuthorized Redirect URIs: A valid URL to which Zoho Accounts redirects you with a grant token (code) after successful authentication. We suggest using:
https://birdie.ai/success
Zoho API Console: Client set up options

Zoho API Console: Client information
Making the Authorization Request
Server-based applications are chosen when your application is used by multiple users and requires user intervention during authorization. In this authorization flow, obtain an authorization grant by invoking the authorization URI:
https://accounts.zoho.com/oauth/v2/auth?scope=Desk.search.READ,Desk.tickets.ALL,Desk.contacts.ALL&client_id={1000.XXXXXXXXXXXXXXXXXXXX}&response_type=code&access_type=offline&redirect_uri={Authorized_Redirect_URI}&prompt=consentAfter you invoke the Authorization URI, a "user-consent" page opens.

Zoho Desk: Authorization request
When the user clicks Accept, the application gets authorized and a grant token is sent as a parameter in the redirect_uri. E.g.:
https://birdie.ai/?code={1000.XXXXXXXXXXXXXXXXXXXX}&location=us&accounts-server=https%3A%2F%2Faccounts.zoho.com
Birdie: Redirect page
Switch Authorization Code for an Access Token
Now you need to make an HTTP request using your preferred method. We use curl as an example:
curl -X POST https://accounts.zoho.com/oauth/v2/token \
-d "grant_type=authorization_code" \
-d "client_id={Client ID}" \
-d "client_secret={Client Secret}" \
-d "redirect_uri={Authorized Redirect URI}" \
-d "code={1000.YYYYYYYYYYYYYYYYYYYY}"Note:
Make sure to replace {Client ID}, {Client Secret}, {Authorized Redirect URI} and {1000.YYYYYYYYYYYYYYYYYYYY} with the appropriate values. E.g. the values of Client ID, Client Secret, and Authorized Redirect URIs in the images from Step 1 and the Authorization Code you saved from Step 2.
Which will generate a response following the template:
{
"access_token": "1000.xxxxxxxx",
"refresh_token": "1000.yyyyyyyy",
"api_domain": "https://desk.zoho.com",
"token_type": "Bearer",
"expires_in": 3600
}Connect to Birdie
After you have completed the steps above and obtained a Refresh Token, securely share the Refresh Token (and related client information, if requested) with Birdie. Birdie will use this token to connect with your Zoho Desk Portal and keep importing data automatically.
Data in scope
Ticket import process and update frequency
Birdie imports Zoho Desk's Tickets by checking for new data through the modifiedTime field, ensuring that the latest modifications are reflected in our application. This method enables Birdie to capture only the most recent changes without re-importing old data.
Custom fields
Zoho Desk allows you to store additional, flexible data within tickets beyond standard fields, accommodating various data types. If your Zoho Desk setup includes custom fields for tickets, these fields can be mapped directly into Birdie, preserving your unique data structure.
Once imported, Zoho Desk's custom fields appear as Birdie custom fields, maintaining consistency across both platforms. Mapped to Birdie’s data structure, these fields enhance data organization and filtering, supporting extended segmentation within Birdie’s interface. This allows for customized workflows and data displays based on the unique attributes of each ticket.
Last updated