Zoho Projects

Zoho Projects is a cloud-based solution for project planning and tracking projects for team collaboration, and achieving project goals.

Data integration: Skyvia supports importing data to and from Zoho Projects, exporting Zoho Projects data to CSV files, replicating Zoho Projects data to relational databases, and synchronizing Zoho Projects data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support Zoho Projects backup.

Query: Skyvia Query supports Zoho Projects.

Establishing Connection

To create a connection, log in with Zoho account, then specify Data Center and Portal Name. Skyvia stores only the OAuth authentication token. Skyvia does not store your credentials.

Creating Connection


To connect to Zoho Projects, perform the following steps:

  1. Click Sign In with Zoho Projects in the connection editor in Skyvia.

  2. Enter your Zoho credentials to log in.


  3. Give Skyvia permission to perform actions in Zoho Projects.


  4. Specify the Data Center. By default the value is set to US.

  5. Enter the Portal Name. Login to Zoho Projects, click on your account avatar and go to My Portal to obtain the Portal Name.

  6. Click Create Connection.

Additional Connection Parameters

Suppress Extended Requests

For the ProjectLayouts object, Zoho Projects API returns only part of the fields when querying multiple records. In order to query values of additional fields, Skyvia performs additional extended requests. Such API requests can be performed for each record of such object. However, this can decrease performance and significantly increase the number of API calls used.

Here is the list of such fields:

ProjectLayouts IsShowNote, IdNameMap, CustomStatus, CustomFields, RunningSchedule, Picklists, ModuleName, UserData, Sections

To reduce the number of API calls, you can select the Suppress Extended Requests checkbox. However, please note that some of the fields in such objects will not be available in Skyvia (will return empty values) even if they have values in Zoho Projects because its API does not return them without extended requests.

Connector Specifics

Object Peculiarities

Fields with DATE Datatype

Skyvia works with date fields (StartDate, EndDate, DueDate, LogDate in all tables storing such fields) as String because of datatype conversion specifics in Zoho Projects API. Pass the dates in the ‘MM-DD-YYYY’ format when importing data to such fields.

InternalTaskList and ExternalTaskList

The TaskList object in Skyvia is represented as two objects: InternalTaskList and ExternalTaskList The InternalTaskLists table returns the records where the Flag field is set to Internal or AllFlag. The ExternalTaskLists returns the records with Flag set to External or AllFlag.


Add the 0 character to a single-digit value when performing the INSERT operation to the Hour, Minutes, DurationHour, DurationMinutes fields.

For example, you have to pass the values 1, 2, …, 9 like 01, 02, …, 09.


This table has empty records with a single value Split = true. Such records visually divide the table content by upload date. For example by Today, Previous 7 days, Earlier.

API Limit

Zoho Projects allows performing 100 API calls per 2 minutes against one endpoint. When this limit is exceeded, all further calls to the same endpoint are blocked for 30 minutes. However, you can perform API calls to other Zoho Projects endpoints.

For example, you can Import 100 records at once for the Tasks table. All other records return the Cannot execute more than 100 requests per API in 2 minutes. Try again after 29 minutes. In this case the Import is blocked for the Tasks table, however you can select data from this table

Custom Fields

This field returns the array in the following format when querying: [{"column_name":"UDF_LONG1","label_name":"CF_Number","value":"12345"},{"column_name":"UDF_BOOLEAN1","label_name":"CF_Checkbox","value":"true"}]

When importing data to the CustomFields field, you don’t have to map the whole array. You must map only the JSON object with the custom field API Name, and it’s value. For example, to insert value 777 to the numeric custom field with the API Name UDF_LONG1, you have to set mapping in the following format: {"UDF_LONG1":"777"}.

Incremental Replication and Synchronization

Replication with Incremental Updates is supported for the following objects: BugComments, Bugs, Documents, Events, ExternalTaskLists, Forums, InternalTaskLists, Milestones, MyBugs, MyMilestones, MyTasks, Projects, Subtasks, TaskComments, Tasks, TaskTimeLogs.

Incremental Replication considers only the new records for the Events, Projects, TaskComments tables. These tables contain only the CreatedDate field, and there is no the UpdatedDate field which would have allowed considering the updated records.

Synchronization is supported for the following objects: Bugs, ExternalTaskLists, InternalTaskLists, Milestones, TaskTimeLogs.

DML Operations Support

Operation Object
INSERT, UPDATE, DELETE Bugs, ExternalTaskLists, InternalTaskLists, Milestones, Projects, TaskComments, Tasks, TaskTimeLogs
INSERT, DELETE BugComments, Events
INSERT BugFollowers, Clients, ProjectClients, ProjectGroups, Subtasks

Stored Procedures

Skyvia represents part of the supported Zoho Project features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.


To add existing Zoho One account users to a Portal, use command

call AddUserToPortal(:email, :profileId, :roleId, :workProjects)

Email Email ID of users separated by a comma
ProfileId The ID of the user profile to assign to the user. Note that this should be a user profile, not the client profile
RoleId The ID of the role to assign to the user. Note that this should be a user role, not the client role
WorkProjects A JSON array of project ids


To update a User on the Portal, use command

call UpdateUserInPortal(:userId, :profileId, :roleId, :projectIds)

UserId The ID of the user to update
ProfileId The ID of the user profile to assign to the user. Note that this should be a user profile, not the client profile
RoleId The ID of the role to assign to the user. Note that this should be a user role, not the client role
WorkProjects A JSON array of project ids


To delete the user from a portal, use command

call DeleteUserFromPortal(:userId)


To create new client contacts in the portal, use command

call CreateContacts(:portalId, :clientId, :contacts, :workProjects)

PortalId The id of the portal
ClientId The id of the client company
Contacts The contacts to add. You need to specify one or more contacts as an array of JSON objects. For example: [{ "first_name": "somename", "last_name": "somelastname", "email": "[email protected]", "invoice_rate": 45 }]
Workprojects JSON array of project ids. For example: [170876000011141285, 170876000011141005]

Supported Actions

Skyvia supports all the common actions for Zoho Projects.