API Data Provider - Online Help

Connecting to ZohoPeople

To authenticate to ZohoPeople, and connect to your own data or to allow other users to connect to their data, you can use the OAuth standard.

Using OAuth Authentication

First, you will need to register an OAuth application with ZohoPeople. To do so, go to Zoho Developer Console, add a new Client (Server-based application) and set a valid OAuth redirect URL. Your Oauth application will be assigned a client id and a client secret.

After setting the following connection properties, you are ready to connect:

  • AuthScheme: Set this to OAuth.
  • InitiateOAuth: Set this to GETANDREFRESH. You can use InitiateOAuth to manage the process to obtain the OAuthAccessToken.
  • OAuthClientId: Set this to the client_id that is specified in you app settings.
  • OAuthClientSecret: Set this to the client_secret that is specified in you app settings.
  • CallbackURL: Set this to the Redirect URI that is specified in your app settings
  • Domain: Optionally, set this in ProfileSettings to your ZohoPeople account domain

Example connection string:

Profile=C:\profiles\ZohoPeople.apip;ProfileSettings='Domain=your_domain';Authscheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;CallbackUrl=your_callback_url;

Available Tables

The ZohoPeople API Profile provides access to employee management, time tracking, travel, compensation, performance, and survey data across 36 tables and views:

  • AddressProof - Query and insert address proof change requests submitted by employees.
  • AddressProofView - Query address proof request records from the AddressProofView view.
  • BonafideLetter - Query and insert bonafide letter requests submitted by employees.
  • BonafideLetterView - Query bonafide letter requests from the BonafideLetterView view.
  • CandidateView - Query onboarding candidates from the CandidateView view.
  • Clients - Query time tracker clients.
  • Compensation - Query compensation and salary records for employees.
  • Departments - Query and insert departments from the department form.
  • Designations - Query and insert designations from the designation form.
  • DowngradedEmployeeView - Query downgraded employees from the DowngradedEmployeeView view.
  • EmployeeInactiveView - Query inactive employees from the EmployeeInactiveView view.
  • EmployeeView - Query employees and their full profile details from the P_EmployeeView view.
  • Employees - Query and insert employee records from the employee form.
  • ExperienceLetter - Query and insert experience letter requests submitted by employees.
  • ExperienceLetterView - Query experience letter requests from the ExperienceLetterView view.
  • FileCategories - Query file category definitions configured in the system.
  • Files - Query files uploaded to employee records.
  • GoalSheetView - Query goal sheets from the P_GoalSheet_View view.
  • JobSchedule - Query job schedules for an employee within a date range.
  • Jobs - Query time tracker jobs.
  • KRAUserView - Query KRA ratings per employee from the P_KRA_User_View view.
  • KRAView - Query Key Result Areas (KRAs) from the P_KRA_View view.
  • Projects - Query time tracker projects.
  • QuestionView - Query survey questions from the QuestionView view.
  • SurveyView - Query surveys from the SurveyView view.
  • Tasks - Query and insert tasks from the P_Task form.
  • TasksView - Query tasks from the P_Task_View view.
  • Timesheet - Query detailed timesheet data for a specific timesheet record.
  • Timesheets - Query the list of timesheets for a specified user.
  • Timelogs - Query time log entries for a specified user.
  • TravelExpenses - Query and insert travel expense records from the travelexpenses form.
  • TravelExpensesView - Query travel expense records from the TravelExpenseView view.
  • TravelRequests - Query and insert travel request records from the travelrequest form.
  • TravelRequestsView - Query travel request records from the TravelInitiateView view.
  • UserSkills - Query skills assigned to a specific employee.
  • WorkItems - Query work items for a specific job and employee.

Usage Examples

AddressProof:

SELECT * FROM AddressProof
SELECT * FROM AddressProof WHERE ZohoId = 123456
INSERT INTO AddressProof (EmployeeId, DateOfRequest, ReasonForRequest, IsThereAnyChangeInAddress) VALUES ('EMP-001', '01-Jan-2025', 'Relocation', 'Yes')

AddressProofView:

SELECT * FROM AddressProofView
SELECT * FROM AddressProofView WHERE ModifiedTime > '2025-01-01'

BonafideLetter:

SELECT * FROM BonafideLetter
SELECT * FROM BonafideLetter WHERE ZohoId = 123456
INSERT INTO BonafideLetter (EmployeeId, RequestDate, ReasonForRequest) VALUES ('EMP-001', '01-Jan-2025', 'Visa Application')

BonafideLetterView:

SELECT * FROM BonafideLetterView
SELECT * FROM BonafideLetterView WHERE ModifiedTime > '2025-01-01'

CandidateView:

SELECT * FROM CandidateView
SELECT * FROM CandidateView WHERE OnboardingStatus = 'Pending'
SELECT * FROM CandidateView WHERE ModifiedTime > '2025-01-01'

Clients:

SELECT * FROM Clients
SELECT * FROM Clients WHERE Id = 123456

Compensation:

SELECT * FROM Compensation WHERE Mode = 'all'
SELECT * FROM Compensation WHERE Mode = 'team'

Departments:

SELECT * FROM Departments
SELECT * FROM Departments WHERE ModifiedTime > '2025-01-01'
INSERT INTO Departments (Department) VALUES ('Engineering')

Designations:

SELECT * FROM Designations
SELECT * FROM Designations WHERE ModifiedTime > '2025-01-01'
INSERT INTO Designations (Designation) VALUES ('Senior Software Engineer')

DowngradedEmployeeView:

SELECT * FROM DowngradedEmployeeView
SELECT * FROM DowngradedEmployeeView WHERE Department = 'Engineering'

EmployeeInactiveView:

SELECT * FROM EmployeeInactiveView
SELECT * FROM EmployeeInactiveView WHERE Department = 'Engineering'

EmployeeView:

SELECT * FROM EmployeeView
SELECT * FROM EmployeeView WHERE EmployeeId = 'EMP-001'
SELECT * FROM EmployeeView WHERE ModifiedTime = '2025-01-01'

Employees:

SELECT * FROM Employees
SELECT * FROM Employees WHERE EmployeeId = 'EMP-001'
SELECT * FROM Employees WHERE ModifiedTime > '2025-01-01'
INSERT INTO Employees (EmployeeId, FirstName, LastName, Email) VALUES ('EMP-002', 'Jane', 'Doe', '[email protected]')

ExperienceLetter:

SELECT * FROM ExperienceLetter
SELECT * FROM ExperienceLetter WHERE ZohoId = 123456
INSERT INTO ExperienceLetter (EmployeeId, RequestDate, ReasonForRequest) VALUES ('EMP-001', '01-Jan-2025', 'New Employment')

ExperienceLetterView:

SELECT * FROM ExperienceLetterView
SELECT * FROM ExperienceLetterView WHERE ModifiedTime > '2025-01-01'

FileCategories:

SELECT * FROM FileCategories

Files:

SELECT * FROM Files WHERE FileType = '1' AND RoleId = 'all' AND CategoryId = 'CAT-001' AND EmployeeId = 'EMP-001' AND LocationId = 'all' AND FilterBy = 'all'
SELECT * FROM Files WHERE FileType = '0' AND RoleId = 'all' AND CategoryId = 'CAT-001' AND EmployeeId = 'EMP-001' AND LocationId = 'all' AND FilterBy = 'my'

GoalSheetView:

SELECT * FROM GoalSheetView
SELECT * FROM GoalSheetView WHERE EmployeeId = 'EMP-001'
SELECT * FROM GoalSheetView WHERE ModifiedTime > '2025-01-01'

JobSchedule:

SELECT * FROM JobSchedule WHERE EmployeeId = 'EMP-001' AND FromDate = '01-Jan-2025' AND ToDate = '31-Jan-2025'

Jobs:

SELECT * FROM Jobs
SELECT * FROM Jobs WHERE Id = 123456
SELECT * FROM Jobs WHERE Status = 'inprogress' AND AssignedTo = 'all'

KRAUserView:

SELECT * FROM KRAUserView
SELECT * FROM KRAUserView WHERE EmployeeId = 'EMP-001'
SELECT * FROM KRAUserView WHERE ModifiedTime > '2025-01-01'

KRAView:

SELECT * FROM KRAView
SELECT * FROM KRAView WHERE EmployeeId = 'EMP-001'
SELECT * FROM KRAView WHERE ModifiedTime > '2025-01-01'

Projects:

SELECT * FROM Projects
SELECT * FROM Projects WHERE Id = 123456
SELECT * FROM Projects WHERE ProjectStatus = 'inprogress' AND AssignedTo = 'all'

QuestionView:

SELECT * FROM QuestionView
SELECT * FROM QuestionView WHERE RecordId = 'REC-001'
SELECT * FROM QuestionView WHERE ModifiedTime > '2025-01-01'

SurveyView:

SELECT * FROM SurveyView
SELECT * FROM SurveyView WHERE RecordId = 'REC-001'
SELECT * FROM SurveyView WHERE ModifiedTime > '2025-01-01'

Tasks:

SELECT * FROM Tasks
SELECT * FROM Tasks WHERE ZohoId = 123456
INSERT INTO Tasks (TaskName, Status) VALUES ('Complete onboarding docs', 'Open')

TasksView:

SELECT * FROM TasksView
SELECT * FROM TasksView WHERE Status = 'Open'
SELECT * FROM TasksView WHERE ModifiedTime > '2025-01-01'

Timesheet:

SELECT * FROM Timesheet WHERE TimesheetId = 123456

Timesheets:

SELECT * FROM Timesheets WHERE User = 'all'
SELECT * FROM Timesheets WHERE User = '[email protected]' AND Status = 'approved'
SELECT * FROM Timesheets WHERE User = 'all' AND FromDate = '2025-01-01' AND ToDate = '2025-01-31'

Timelogs:

SELECT * FROM Timelogs WHERE User = 'all'
SELECT * FROM Timelogs WHERE User = '[email protected]' AND ApprovalStatus = 'approved'
SELECT * FROM Timelogs WHERE User = 'all' AND ProjectId = 123456

TravelExpenses:

SELECT * FROM TravelExpenses
SELECT * FROM TravelExpenses WHERE RecordId = 123456
INSERT INTO TravelExpenses (TravelId, EmployeeId) VALUES ('TRAV-001', 'EMP-001')

TravelExpensesView:

SELECT * FROM TravelExpensesView
SELECT * FROM TravelExpensesView WHERE ModifiedTime > '2025-01-01'

TravelRequests:

SELECT * FROM TravelRequests
SELECT * FROM TravelRequests WHERE RecordId = 123456
INSERT INTO TravelRequests (EmployeeId) VALUES ('EMP-001')

TravelRequestsView:

SELECT * FROM TravelRequestsView
SELECT * FROM TravelRequestsView WHERE ModifiedTime > '2025-01-01'

UserSkills:

SELECT * FROM UserSkills WHERE EmployeeId = 'EMP-001'

WorkItems:

SELECT * FROM WorkItems WHERE JobId = '123456' AND EmpId = 'EMP-001'

Connection Properties

The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider.


Property Description
AuthScheme The scheme used for authentication. Accepted entries are None or OAuth.
Allowed values are: BASIC, NONE, NTLM, OAUTH, APIKEY, OAUTH_CLIENT, OAUTH_PASSWORD
CallbackURL Identifies the URL users return to after authenticating to API via OAuth (Custom OAuth applications only).
Domain Determines the domain where authentication calls will be sent to.
Allowed values are: MIXPANEL, EU.MIXPANEL, IN.MIXPANEL, .COM, .EU, .COM.AU, .IN, COM, EU, COM.AU, IN, JP, COM.CN, CA, SA, .COM.CN, .JP, .CA, .SA
InitiateOAuth Specifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working.
Allowed values are: OFF, REFRESH, GETANDREFRESH
OAuthAccessToken Specifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange.
OAuthClientId Specifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication.
OAuthClientSecret Specifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. (Custom OAuth applications only.).
OAuthExpiresIn Specifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working.
OAuthRefreshToken Specifies the OAuth refresh token used to request a new access token after the original has expired.
OAuthSettingsLocation Specifies the location of the settings file where OAuth values are saved.
OAuthTokenTimestamp Displays a Unix epoch timestamp in milliseconds that shows how long ago the current access token was created.
OAuthVerifier Specifies a verifier code returned from the OAuthAuthorizationURL . Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set.
Scope Scope(s) to use when authenticating, that control access to specific information.

Copyright (c) 2026 CData Software, Inc. - All rights reserved.
Build 26.0.9770.0