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:
-
Click Sign In with Zoho Projects in the connection editor in Skyvia.
-
Enter your Zoho credentials to log in.
-
Give Skyvia permission to perform actions in Zoho Projects.
-
Specify the Data Center. By default the value is set to US.
-
Enter the Portal Name. Login to Zoho Projects, click on your account avatar and go to My Portal to obtain the Portal Name.
-
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:
OBJECT | FIELD |
---|---|
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.
Events
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.
Documents
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.
AddUserToPortal
To add existing Zoho One account users to a Portal, use command
call AddUserToPortal(:email, :profileId, :roleId, :workProjects)
PARAMETER | DESCRIPTION |
---|---|
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 |
UpdateUserInPortal
To update a User on the Portal, use command
call UpdateUserInPortal(:userId, :profileId, :roleId, :projectIds)
PARAMETER | DESCRIPTION |
---|---|
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 |
DeleteUserFromPortal
To delete the user from a portal, use command
call DeleteUserFromPortal(:userId)
CreateContacts
To create new client contacts in the portal, use command
call CreateContacts(:portalId, :clientId, :contacts, :workProjects)
PARAMETER | DESCRIPTION |
---|---|
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@domain.com", "invoice_rate": 45 }] |
Workprojects | JSON array of project ids. For example: [170876000011141285, 170876000011141005] |
Supported Actions
Skyvia supports all the common actions for Zoho Projects.