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
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 additional fields: 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 implements such actions as adding, updating, and deleting _Users) from the portal and creating contacts as stored procedures.
AddUserToPortal
call AddUserToPortal(:email, :profileId, :roleId, :workProjects)
This stored procedure adds users to a Portal. Note that these should be the users that are already added to the Zoho One account. You cannot just add arbitrary emails.
Here is the list of parameters:
- 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.
UpdateUserInPortal
call UpdateUserInPortal(:userId, :profileId, :roleId, :projectIds)
This stored procedure updates a User on the Portal. Here is the list of parameters:
- 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
call DeleteUserFromPortal(:userId)
- deletes the user from a portal.
CreateContacts
call CreateContacts(:portalId, :clientId, :contacts, :workProjects)
This procedure creates new client contacts in the portal. Here is the list of parameters:
- 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 - a JSON array of project ids. For example:
[170876000011141285, 170876000011141005]
You can use a call to the 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.
Supported Actions
Skyvia supports all the common actions for Zoho Projects.