Launch your BambooHR integration in minutes along with 20+ other HR integrations, using Knit unified HR API
Read anything, write anything with our two-way data sync option
Work with a common data model, normalized for each category of software
Map all data not included in our standard data model directly from the dashboard
The Location object refers to the work and home as well as current and permanent address of an employee
The OrgStructure object refers to the hierarchical data related to an employee like the employee’s manager, department, designation etc
The employee_profile object contains the basic details (e.g. name, DOB, work email, hire date, termination date etc) for any person that has been employed by the company
With Knit taking care of all your integration needs, you are free to spend 100% of your tech bandwidth to build and upgrade your own product
You need to integrate only once. Whenever a new integration is added to the category, you get immediate access and sync capability without writing a single line of code
Never lose another deal over security concerns. Safe designs, security certifications, safety standards and data protocols make Knit an immediate customer's favorite
Connect with multiple ATS, HRIS, Accounting, CRM and Chat tools using only the Knit API
A cloud based HR software, Freshteam enables organizations with managing employee details, recruitment, on-boarding, time-off, off-boarding, and organization details, among other aspects of their HR processes and practices. With Freshteam API integration, organizations can seamlessly synchronize data between their application and Freshteam to ensure real time updation of employee information across both platforms. It helps capture any changes in employee status, designation, HR policies, etc. across different applications a business uses.
To ensure utmost security and prevent unauthorized access, Freshteam API uses Oauth2.0 for authentication and authorization. Developers can use the Freshteam UI to make calls to the Freshteam authentication server to obtain an access token. This access token can be used to make valid API calls thereon. The access token identifies the requester and the requester’s permission. In the Freshteam domain, the access token is present under Your API Key, which can be copied and used to make API calls.
Rate limits i.e. the number of API calls that can be made in a minute for Fresteam API are determined by the plan selected by the organization. The rate limit variation for each plan is dependent on the number of subscribed employees for the organization. The trial account has a limit of 10 API calls per minute, which goes on to as high as (100, 2 * number of subscribed employees) API calls per minute for the enterprise plan. Developers or admins can also keep a track of the API calls to understand their usage patterns via:
There are several endpoints in Freshteam API which retrieve bulk data, especially the ones which are required to List a certain object. In such a case, developers can use pagination parameters to filter data and limit the responses for a streamlined understanding. Developers can select the page value (from which page number they want responses), as well as the number of responses required for each page (default is set at 50). They can also sort the values as ascending or descending or select some other attribute for sorting as well.
Common attributes: id, created at, updated at, workstation number, date of birth, gender, address, communication address, designation, phone number, joining date, termination date, first name, last name, status, official email, personal email, employee type, team id, department id, reporting to id, time off, hire reason, marital status, etc.
(Used to configure different geographical locations for an organization and associate employees to a branch)
Common attributes: id, created at, updated at, name, street, state, country code, zip, time zone, currency, language, main office, date format
Common attributes: id, created at, updated at, name, description
Common attributes: id, created at, updated at, start date, end date, status, leave units, leave type id, status comments, comments, attachment, applied by, approved by, rejected by, canceled by, notify to, description, add to calendar, canceled at, optional leave days, applicable for, auto approve, status
Common attributes: id, created at, updated at, deleted, title, description, status, show_pursue_as_career, closing date, experience, remote, type, salary, branch, department, title, location, skills, requisitions, label, field type, position, candidate, candidate id, first name, last name, date of birth, mobile, phone number, source id, resume, cover letter, portfolio, skype id, content file name, url, gender, profile link, rejected at, archived at, on hold at, on hold till
Common attributes: id, created at, updated at, deleted, label, default, leads count
Common attributes: id, created at, updated at, deleted, first name, middle name, last name, official email, employee id, status, workstation number, designation, joining date, probation start date, probation end date, branch id, team id, department id, sub department id, termination date, termination reason, notice period, notice start date, notice end date, employee type, hired on, no show, no show reason, date of birth, marital status, gender, blood group, emergency contacts, social profiles, address, communication address, phone numbers, job codes, job exempt, scheduled weekly hours, retirement eligibility date, rehire eligibility, rehire status, confirmed, language, branch, team
50,000+ companies from across 120+ countries use Freshteam to power their HR operations and streamline processes to make them efficient, robust and optimized. Here are some of the top customers that are leveraging Freshteam:
Here is a list of Freshteam API FAQs that developers must understand to make their integration journey more effective and robust:
Businesses, especially those engaged in the employee side of work, are increasingly seeking integration with Freshteam API to streamline data exchange between this HRIS platform and their application. Some of the top use cases and common integrations with Freshteam API include:
To kickstart the integration journey with Freshteam API, developers can go through this quick start guide. The first step is to create a developer account and join the Freshteam developer community. Next developers need to follow the installation instructions to install the API SDK. Following this it is important to get acquainted with the authorization and authentication protocols to access data and make API calls. Learn about the terms of use for accessing or using the Freshteam developer portal and understand the different terminology used. For more support and information, businesses can scroll through the Freshteam support page and get answers to their queries.
Companies that integrate with Freshteam API benefit from the seamless exchange of information between this HRIS platform and their application and have been able to explore multiple use cases for their end customers. However, manually building and maintaining integration with Freshteam API can be a daunting task for developers. Building the integration alone can take 4 weeks on an average and cost USD 10K (considering the cost of software developers, QA engineers, etc.). Further, the cost associated with maintaining the Freshteam API adds another burden on the bottom line, while diverting resources away from core product functionalities and enhancements. And, this is for a single HRIS integration in question here (Freshteam API). Businesses generally need to integrate with multiple HRIS APIs, meeting the demands of their end customers. Here, a unified HRIS API like Knit can enable businesses to easily integrate with multiple HRIS applications with a single connector. By incorporating an additional layer of abstraction, a unified API allows businesses to ship and scale integrations faster and in an efficient manner. Book a discovery call today to learn how developers can integrate with Freshteam API and other HRIS applications within hours and not weeks.
TriNet Zenefits is a leading provider of full service HR solutions. It enables small and medium sized companies to administer and manage benefits, HR offerings, including time tracking, onboarding, employee engagement, employee record keeping; payroll; performance and well-being. As a highly sought after HRIS platform, companies have been increasingly integrating with TriNet Zenefits to facilitate seamless exchange of HRIS data, captured by Zenefits, with their own apps to drive diverse use cases.
Owing to the sensitive nature of information held by the HRIS application, including personal identifiable information (PII), Zenefits API ensures that all data scopes are accessed at a granular level. The Zenefits API uses OAuth2 to authenticate and authorize access to information stored in the application. OAuth2 authorizes third party applications to request private details from Zenefits accounts, without passwords. It is limited only to admins and developers receive unique Client ID and Client Secret to access data with integration.
Zenefits API pagination helps developers define the records needed per page. The developers can use the limit parameter to specify the number of records in a response. The maximum limit can be 100, however, in case the limit is not defined, the default limit is 20. In case the total number of records do not fit into a single page, the next_url field will have a link to the next page with the remaining records. In case the next_url field displays null, then no records exist for subsequent pages. Developers can also use the starting_after or ending_before query parameter to specify pagination based on object ids. The ending_before query parameter is useful for backwards pagination.
It is extremely important for developers to understand the objects, data models and endpoints when it comes to integrating with Zenefits API. While the overall scope might be large, here are a few which can be considered as a starting point for Zenefits API integration.
GET https://api.zenefits.com/platform/applications
GET https://api.zenefits.com/core/companies
Fields include: ‘legal_name', 'ein','departments', 'locations'
GET https://api.zenefits.com/core/companies/{:company_id}/people
GET http://api.zenefits.com/core/people/{:id} (For information about a single employee)
GET http://api.zenefits.com/core/people (For information for all employees across the company)
Fields include: 'work_email', 'date_of_birth', 'manager', 'department', 'location', 'work_phone', 'status', 'subordinates', 'banks','company', 'employments', 'department', 'location', 'manager', 'banks'
GET https://api.zenefits.com/core/people/{:person_id}/employments
GET https://api.zenefits.com/core/employments/{:employment_id} (For information on a specific employment
GET https://api.zenefits.com/core/employments (For information on all employments across all people)
Fields include: 'termination_type', 'employment_type', 'comp_type', 'annual_salary', 'pay_rate', 'working_hours_per_week','person'
GET https://api.zenefits.com/core/people/{:person_id}/banks
GET http://api.zenefits.com/core/banks/{:bank_id} (For information for a specific bank)
GET http://api.zenefits.com/core/banks (For information for all banks across all people)
GET https://api.zenefits.com/core/companies/{:id}/departments
GET http://api.zenefits.com/core/departments/{:department_id} (For information regarding a single department:
GET http://api.zenefits.com/core/departments (For information relating to all departments across all companies)
GET https://api.zenefits.com/core/companies/{:company_id}/locations
GET http://api.zenefits.com/core/locations/{:location_id} (For information relating to a single location)
GET http://api.zenefits.com/core/locations (For information relating to all locations across all companies)
GET https://api.zenefits.com/time_off/vacation_requests
GET http://api.zenefits.com/time_off/vacation_requests/{:id} (For information relating to a single vacation request)
GET http://api.zenefits.com/time_off/vacation_types/{:vacation_type_id}/vacation_requests/ (For all vacation requests for a single vacation type)
Fields include:
GET https://api.zenefits.com/time_off/vacation_types
GET http://api.zenefits.com/time_off/vacation_types/{:id} (For information relating to a single vacation type)
Fields include:
GET https://api.zenefits.com/time_attendance/time_durations
GET http://api.zenefits.com/time_attendance/time_durations/{:id} (For information relating to a single time duration object)
Fields include:
Here is a list of FAQs about TriNet Zenefits API which can help commence and accelerate your integration:
Several businesses are increasingly building integrations with Zenefits API to power operations for the end customers, facilitated by seamless data exchange, including:
To get started with the Zenefit API integration journey, a developer account needs to be created. To create the same, developers can reach out to Zenefits team by dropping an email on this email address. Reaching out on this email ID will take the developers to the next step to get access to a sandboxed Zenefits test company and credentials to start using the API. Once the Zenefits developer account is active, developers can leverage this getting started guide for a detailed overview on REST API, Modules, Webhooks, Authentication and much more. It is important to read through and understand the App Acceptance Criteria well. The same can be accessed here. At the same time, knowledge of the Zenefits Developer Policy is critical to understand the technical, brand and general requirements and restrictions.
Integrating with Zenefits API is beneficial for businesses looking to seamlessly exchange data with this leading HRIS provider with bi-directional sync. However, building a custom 1:1 integration can be a complex, time and resource intensive process. The above mentioned steps, restrictions and requirements can all choke up developer bandwidth. Invariably, SaaS businesses today are moving away from building integrations to partnering with unified APIs like Knit. A unified API, in this case for HRIS integrations, enables companies to integrate once and seamlessly connect with multiple HRIS applications, including Zenefits API, without any additional requirements. With a unified HRIS API, maintenance and management of integration with Zenefits and other applications also becomes quite easy. Book a discovery call today to learn how a unified API can help you ship and scale integrations fast.
Keka is a leading human resources management system that enables organizations to seamlessly manage diverse aspects of their human resource processes, including recruitment and onboarding, attendance and time management, payroll, expense and performance management. With OAuth authentication, rate limiting, pagination, and adherence to industry standards, Keka provides developers with everything they need to build robust integrations with their software/ platform and facilitate data exchange between their application and this leading HRMS portal.
To ensure safe and secure access, Keka API uses OAuth for authentication. This suggests that for successful integration, developers need an access token which can be generated with specific details. This includes client id (identifier for the client), client secret (for secure authentication), api key (unique API key for accessing the system), scope (requires passing kekaapi for this key). To facilitate integration testing for applications, developers can also leverage the Sandbox Environment which is offered by Keka. This allows developers to ensure robust functionality, before integration production begins. Keka APIs already come with pagination implemented to ensure response time optimization. The standard or the default page size in Keka is 100 with 1 being the default page number.
API limit is a critical element of any API and so is the case with Keka, which helps define the number of requests that can be made to Keka within a limited time period. Keka has a rate limit of 50 API requests/ minute. This suggests that once 50 requests are made in a minute, the user needs to wait for the quote to be refilled before any other request is made. The rate limits are enforced and automatically reset after 60 seconds. In case a request is made before the quota is refilled, a 429 error with the reason rateLimitExceeded will be sent.
As a developer or the representative of an organization seeking to integrate with Keka API, it is important to understand the endpoints that you will be using eventually for data exchange, both when it comes to read APIs (getting data from Keka) as well as write APIs (providing data to Keka).
GET https://{company}.{environment}.com/api/v1/hris/employees
POST https://{company}.{environment}.com/api/v1/hris/employees
GET https://{company}.{environment}.com/api/v1/hris/employees/{id}
GET https://{company}.{environment}.com/api/v1/hris/employees/updatefields
PUT https://{company}.{environment}.com/api/v1/hris/employees/{id}/personaldetails
PUT https://{company}.{environment}.com/api/v1/hris/employees/{id}/jobdetails
GET https://{company}.{environment}.com/api/v1/hris/groups
GET https://{company}.{environment}.com/api/v1/hris/grouptypes
GET https://{company}.{environment}.com/api/v1/hris/departments
GET https://{company}.{environment}.com/api/v1/hris/locations
GET https://{company}.{environment}.com/api/v1/hris/jobtitles
GET https://{company}.{environment}.com/api/v1/hris/currencies
GET https://{company}.{environment}.com/api/v1/hris/noticeperiods
GET https://{company}.{environment}.com/api/v1/time/leavetypes
GET https://{company}.{environment}.com/api/v1/time/leavebalance
GET https://{company}.{environment}.com/api/v1/time/leaverequests
POST https://{company}.{environment}.com/api/v1/time/leaverequests
GET https://{company}.{environment}.com/api/v1/time/attendance
GET https://{company}.{environment}.com/api/v1/time/capturescheme
GET https://{company}.{environment}.com/api/v1/time/holidayscalendar
GET https://{company}.{environment}.com/api/v1/payroll/salarycomponents
GET https://{company}.{environment}.com/api/v1/payroll/paygroups
GET https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles
GET https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/payregister
GET https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches
GET https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches/{payBatchId}/payments
PUT https://{company}.{environment}.com/api/v1/payroll/paygroups/{payGroupId}/paycycles/{payCycleId}/paybatches/{payBatchId}/payments
GET https://{company}.{environment}.com/api/v1/payroll/paygrades
GET https://{company}.{environment}.com/api/v1/payroll/paybands
GET https://{company}.{environment}.com/api/v1/psa/clients
POST https://{company}.{environment}.com/api/v1/psa/clients
GET https://{company}.{environment}.com/api/v1/psa/clients/{id}
PUT https://{company}.{environment}.com/api/v1/psa/clients/{id}
GET https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/phases
POST https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/phases
GET https://{company}.{environment}.com/api/v1/psa/projects
POST https://{company}.{environment}.com/api/v1/psa/projects
GET https://{company}.{environment}.com/api/v1/psa/projects/{id}
PUT https://{company}.{environment}.com/api/v1/psa/projects/{id}
GET https://{company}.{environment}.com/api/v1/psa/projects/{id}/allocations
GET https://{company}.{environment}.com/api/v1/psa/projects/{id}/timeentries
GET https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/tasks
POST https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/tasks
PUT https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/tasks/{taskId}
GET https://{company}.{environment}.com/api/v1/psa/projects/{projectId}/tasks/{taskId}/timeentries
GET https://{company}.{environment}.com/api/v1/pms/timeframes
GET https://{company}.{environment}.com/api/v1/pms/goals
PUT https://{company}.{environment}.com/api/v1/pms/goals/{goalId}/progress
GET https://{company}.{environment}.com/api/v1/pms/badges
POST https://{company}.{environment}.com/api/v1/pms/praise
GET https://{company}.{environment}.com/api/v1/expense/categories
GET https://{company}.{environment}.com/api/v1/expense/claims
GET https://{company}.{environment}.com/api/v1/expensepolicies
GET https://{company}.{environment}.com/api/v1/assets
GET https://{company}.{environment}.com/api/v1/assets/types
GET https://{company}.{environment}.com/api/v1/assets/categories
GET https://{company}.{environment}.com/api/v1/assets/conditions
Keka, as an HRMS tool, is widely used with 5000+ customers, including:
Here’s a list of quick FAQs which will help answer any thoughts that you might have during your journey of integrating your application with Keka API
If you are just getting started, it might be a good idea to go through this documentation to understand how you can initiate the integration process. The detailed documentation contains everything you need to know about the overview, endpoints and much more. Leverage this to learn about the different data models scope and other details which will come in handy to get started. At the same time, this link will help you generate the access token for seamless authentication.
While the guide shared above will serve as a comprehensive starting point for you to integrate your application with Keka API, it is important to understand that the entire process can be engineering heavy, time consuming and resource intensive. Put simply, it’s not just about building an integration, but also about managing and maintaining it over time. At the same time, if you want to connect with other HRMS APIs, the process becomes multifold. In such a situation, leveraging a unified HRMS API like Knit can come in handy. Knit enables SaaS businesses to easily connect with multiple HRMS applications by integrating once with its unified API, eliminating the need to connect with each application separately.
Book a demo call today to learn how you can accelerate your integration journey with Keka and other HRMS applications using Knit.