Skip to main content

Keka

Keka is an HR and Professional Services Automation (PSA) platform that exposes REST APIs for employee records, attendance, leave, expenses, and project data. Nexla connects to the Keka API to ingest this data into your pipelines and to write records such as leave requests, attendance logs, and employee updates back into Keka.

Keka icon

Power end-to-end data operations for your Keka API with Nexla. Our bi-directional Keka connector is purpose-built for Keka, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Keka or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Keka workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Keka credential in Nexla, you need an API key and a base URL from your Keka account. Keka authenticates API requests with an access token that Nexla obtains on your behalf using the credentials you provide, and sends as a Bearer token in the Authorization header.

Only a Global admin can generate API keys in Keka. To obtain your Keka API credentials:

  1. Sign in to your Keka account as a Global admin.

  2. Navigate to Global admin settings > Integrations & Automations > API access > API key.

  3. Generate a client ID and client secret, then create an API key, selecting the privileges and scopes required for your use case. Keka uses the scope kekaapi for API access.

  4. Record the API key and secret. Store them securely, as they grant programmatic access to your Keka organization's data.

  5. Determine your base URL. Keka API base URLs follow the format https://{company}.keka.com/api/v1, where {company} is your organization's Keka subdomain. Confirm the exact host for your account in the Keka developer portal.

For detailed information about generating API keys, authentication, and available endpoints, see the Keka API documentation.

Authenticate

Credentials required

FieldRequiredSecretDescription
Username Or API KeyYesYesYour username or personal API Key
PasswordYesYesYour password
Base URLYesNoThe base URL for the Keka API, e.g. https://{company}.keka.com/api/v1

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your username or API key in the Username Or API Key field, and your password in the Password field. These values are used to obtain an access token from Keka, which Nexla sends as a Bearer token in the Authorization header for all API requests.

  4. Enter your Keka Base URL in the Base URL field, using the format https://{company}.keka.com/api/v1 where {company} is your organization's Keka subdomain.

    Only a Global admin can generate Keka API keys. If your API key is compromised, revoke it in your Keka Global admin settings under Integrations & Automations > API access and generate a new one.

  5. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Keka connector tile, then select the credential that will be used to connect to the Keka instance, and click Next; or, create a new Keka credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Keka endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

[Rest API] List Employees

Returns a paginated list of all employees in the organization.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Attendance Records

Returns a paginated list of attendance records for employees.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Clients

Returns a paginated list of all clients in the Professional Services Automation module.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Projects

Returns a paginated list of all projects in the Professional Services Automation module.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Project Time Entries

Returns a paginated list of time entries logged against projects.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Project Time Entries by Project

Returns a paginated list of time entries for a specific project within an optional date range.

  • This endpoint requires a Project ID: the unique identifier of the project to retrieve time entries for.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Leave Types

Returns a paginated list of all leave types configured in the system.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Leave Requests

Returns a paginated list of all leave requests submitted by employees.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Leave Balances

Returns a paginated list of all leave balances for employees, optionally filtered by employee or leave type.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Expense Claims

Returns a paginated list of all expense claims submitted by employees.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Departments

Returns a paginated list of all departments in the organization.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Job Titles

Returns a paginated list of all job title designations configured in the organization.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Locations

Returns a paginated list of all work locations configured in the organization.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

[Rest API] List Groups

Returns a paginated list of all groups defined in the organization.

This endpoint returns paginated results. Nexla automatically iterates through the pages to fetch the complete set of records.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Keka data sources can also be manually configured to ingest data from any valid Keka API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Keka data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Keka destination, and select the Send to Destination option from the menu. Select the Keka connector from the list of available destination connectors, then select the credential that will be used to connect to the Keka organization, and click Next; or, create a new Keka credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Keka endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

[Rest API] Create Employee

Create a new employee record and return the created employee identifier.

Each record from your Nexset is sent as a separate JSON request to Keka. Ensure your data matches the structure expected by the Keka API for this operation.

[Rest API] Update Employee

Update an employee's personal or job details such as contact information, department, or custom fields.

  • This endpoint requires an Employee ID: the unique identifier of the employee to update.

Each record from your Nexset is sent as a separate JSON request to Keka. Ensure your data matches the structure expected by the Keka API for this operation.

[Rest API] Create Leave Request

Submit a new leave request for an employee.

Each record from your Nexset is sent as a separate JSON request to Keka. Ensure your data matches the structure expected by the Keka API for this operation.

[Rest API] Delete Leave Request

Cancel or delete a leave request by ID.

  • This endpoint requires a Leave Request ID: the unique identifier of the leave request to delete.

This operation permanently cancels or deletes the leave request identified by the supplied ID in Keka.

[Rest API] Create Attendance Log

Submit attendance log entries for employees, including clock-in/clock-out timestamps.

Each record from your Nexset is sent as a separate JSON request to Keka. Ensure your data matches the structure expected by the Keka API for this operation.

[Rest API] Create Time Entry

Log a time entry for a project or task in the PSA module.

Each record from your Nexset is sent as a separate JSON request to Keka. Ensure your data matches the structure expected by the Keka API for this operation.

Manual configuration

Keka destinations can also be manually configured to send data to any valid Keka API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Keka APIs expect JSON format for most write operations. For update operations, include the ID of the object to be updated at the end of the URL.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Keka endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Keka endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.