Skip to main content

Baton

Baton is a project management platform purpose-built for software implementation and customer onboarding. Designed to help implementation teams standardize workflows, accelerate time-to-value, and deliver a seamless client experience, Baton provides tools for managing projects, tasks, milestones, phases, templates, time entries, and team members. Its API enables programmatic access to all core resources—allowing you to extract implementation data, synchronize project records with other business systems, and automate reporting across your post-sales operations. Baton was acquired by ClientSuccess in 2024 to expand their customer onboarding and implementation management capabilities.

Baton icon

Power end-to-end data operations for your Baton API with Nexla. Our bi-directional Baton connector is purpose-built for Baton, 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 Baton or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Baton 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

To connect Nexla to Baton, you need an active Baton account and a Baton API key. The Baton API uses API key authentication — your key is passed as a Bearer token in the Authorization header of each request. You also need your Baton company identifier, which is the company-specific subdomain used to construct the base URL for all API calls (in the format https://app.hellobaton.com/api/{company}/).

Obtain Your Baton API Key

Baton API keys are generated from within your Baton account. You will need sufficient account permissions to access the API settings area.

  1. Sign in to your Baton account at app.hellobaton.com.

  2. Navigate to your account or organization settings. Depending on your Baton account configuration, this may be accessible from your user profile menu in the upper-right corner or from a Settings option in the main navigation.

  3. Locate the API or Integrations section within Settings.

  4. Generate a new API key by clicking the appropriate Create or Generate button.

  5. Copy the generated API key immediately and store it in a secure location. This value is used to authenticate all API requests from Nexla to Baton.

For complete information about Baton API authentication and credential management, refer to the Baton API documentation. Your API key provides programmatic access to your Baton account data — treat it like a password and avoid sharing it with unauthorized parties.

Identify Your Baton Company Identifier

The Baton API uses a company-specific identifier to scope all API requests. This identifier is the name of your company instance in Baton, used to form the base URL for API calls.

  • Your company identifier is typically the short name or slug associated with your Baton organization. It appears in the URL when you are logged into Baton — for example, in a URL like https://app.hellobaton.com/mycompany/, the company identifier would be mycompany.

  • Contact your Baton account administrator if you are unsure of your organization's company identifier.

Authenticate

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 Baton API key in the API Key field. This is the key generated from your Baton account settings (see Obtain Your Baton API Key above). Nexla will send this value as a Bearer token in the Authorization header of all API requests to Baton.

    Important

    The API key field is a password-type field — the value will be masked after entry. Ensure you have copied the correct API key from your Baton account before saving the credential.

  4. Enter your Baton company identifier in the Company field. This is the company-specific name used to construct the base API URL for your Baton instance (see Identify Your Baton Company Identifier above). The Baton API will use this value to scope all requests to your organization's data.

    The company identifier is case-sensitive and must match exactly the value associated with your Baton organization. An incorrect company identifier will result in authentication or endpoint errors when Nexla attempts to connect to Baton.

  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 and can be selected for use with a new data source or destination.

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 Baton connector tile, then select the credential that will be used to connect to the Baton instance, and click Next; or, create a new Baton 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 Baton 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. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

Get Projects

Retrieves all implementation projects within your Baton organization. Use this endpoint to ingest project records including project names, statuses, due dates, associated companies, and assigned team members for reporting, pipeline analysis, or synchronization with other business tools.

  • This endpoint returns all projects accessible to your Baton credential. No additional configuration is required beyond selecting this template.
  • Each project record includes metadata such as project ID, name, status, start and due dates, associated client company, and assigned project manager.
  • The connector performs a full refresh each time it syncs, retrieving all available project records from your Baton account.

The Baton API is rate limited at 1,000 requests per minute per API key. For large organizations with many projects, Nexla will automatically manage pagination to retrieve all records within this limit.

Get Tasks

Retrieves all tasks across projects in your Baton organization. Tasks are the individual work items assigned to team members or clients within a project. Use this endpoint to track task progress, assignments, dependencies, and completion status across all your implementation projects.

  • This endpoint returns all tasks accessible to your Baton credential, including task names, descriptions, assignees, due dates, statuses, and any task dependencies.
  • Task records include references to their parent project, allowing you to join task data with project records retrieved from the Get Projects endpoint.
  • The connector performs a full refresh each sync, retrieving all available task records.

Task dependencies are included in the response and indicate which tasks must be completed before others can begin. This data is particularly useful for building dependency graphs or identifying bottlenecks in your implementation workflows.

Get Milestones

Retrieves all milestones defined within your Baton projects. Milestones represent key checkpoints or deliverables in an implementation project. Use this endpoint to track milestone completion rates, identify delays, and report on project progress against key delivery targets.

  • This endpoint returns all milestones across all projects, including milestone names, associated project IDs, target dates, completion dates, and statuses.
  • Milestone records can be joined with project records using the project ID field to build comprehensive project health reports.

Get Phases

Retrieves all phases defined within your Baton projects. Phases are structured groupings of tasks that represent distinct stages of an implementation, such as Discovery, Configuration, Testing, and Go-Live. Use this endpoint to analyze phase-level progress and identify where projects are spending the most time.

  • This endpoint returns all phases across all projects, including phase names, order, associated project IDs, and completion status.
  • Phase records reference their parent project by project ID and can be joined with task records to understand which tasks belong to each phase.

Get Templates

Retrieves all project templates available in your Baton organization. Templates are reusable project structures that standardize the implementation process across similar client engagements. Use this endpoint to audit your template library or synchronize template data with external project management or documentation systems.

  • This endpoint returns all templates including template names, descriptions, associated tasks and phases, and metadata about when each template was created or last updated.
  • No additional configuration is required beyond selecting this template.

Templates in Baton are typically created from successful completed projects. Retrieving template data is useful for maintaining an up-to-date catalog of your standardized implementation workflows.

Get Users

Retrieves all users within your Baton organization. Use this endpoint to maintain a current list of team members, their roles, and account statuses for user management, access auditing, or integration with HR and identity management systems.

  • This endpoint returns all users in your Baton organization, including user IDs, names, email addresses, roles, and account status.
  • User IDs are referenced in task and project records as assignees, making this endpoint useful for enriching task and project data with full user details.

Get Companies

Retrieves all companies (clients or internal organizations) associated with your Baton account. Companies represent the client organizations for which implementation projects are being managed. Use this endpoint to maintain a client roster, analyze implementation activity by client, or synchronize client data with your CRM.

  • This endpoint returns all companies in your Baton organization, including company IDs, names, and associated metadata.
  • Company IDs are referenced in project records, allowing you to join company data with project records to build client-level implementation reports.

Get Time Entries

Retrieves all time entries logged against tasks in your Baton projects. Time entries capture the hours spent by team members on specific tasks, enabling time tracking, billing, resource utilization analysis, and project costing.

  • This endpoint returns all time entries including the associated task ID, user ID, logged duration, date, and any notes recorded with the entry.
  • Time entry records reference both tasks and users by ID, allowing you to join this data with task and user records for comprehensive time tracking reports.

Time entries are only available if your team actively logs time in Baton. If time tracking has not been enabled or used in your organization, this endpoint may return limited or no data.

Get Activity

Retrieves the activity audit log for your Baton organization. The activity stream records changes made to projects, tasks, and other resources — providing a chronological history of actions taken by users. Use this endpoint for audit compliance, change tracking, or monitoring real-time activity across your implementation portfolio.

  • Activity records include the type of action performed (create, update, delete), the resource affected, the user who performed the action, and a timestamp.
  • This endpoint is particularly useful for building audit trails or detecting configuration changes across projects.

Get Project Attachments

Retrieves metadata for all file attachments associated with projects in your Baton organization. Use this endpoint to track documents, deliverables, and other files uploaded to projects for compliance auditing or document management purposes.

  • This endpoint returns attachment metadata including file names, upload dates, associated project IDs, and uploader information. File content itself is not retrieved — only metadata.
  • Attachment records reference their parent project by project ID.

Get Task Attachments

Retrieves metadata for all file attachments associated with tasks in your Baton organization. Use this endpoint to track task-level documentation and deliverables for audit or document management purposes.

  • This endpoint returns task attachment metadata including file names, upload dates, associated task IDs, and uploader information. File content itself is not retrieved — only metadata.
  • Attachment records reference their parent task by task ID and can be joined with task records for a complete picture of task documentation.

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

Baton data sources can also be manually configured to ingest data from any valid Baton 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.

Baton API endpoints follow the pattern https://app.hellobaton.com/api/{company}/{resource}/, where {company} is your Baton company identifier and {resource} is the specific resource you want to retrieve (e.g., projects, tasks, users). For a complete list of available Baton API endpoints and their parameters, refer to the Baton API documentation.

You do not need to include the Authorization header—Nexla attaches it automatically from your credential.

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 Baton 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 Baton destination, and select the Send to Destination option from the menu. Select the Baton connector from the list of available destination connectors, then select the credential that will be used to connect to the Baton organization, and click Next; or, create a new Baton credential for use in this flow.

Manual configuration

Baton destinations can also be manually configured to send data to any valid Baton 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.

The Baton API accepts JSON-formatted request bodies for create and update operations. Endpoints follow the pattern https://app.hellobaton.com/api/{company}/{resource}/, where {company} is your Baton company identifier and {resource} is the specific resource you are creating or updating (e.g., projects, tasks, companies). For update or upsert operations, include the ID of the object to be updated at the end of the URL. For complete information about available Baton API endpoints, required request body fields, and response formats, refer to the Baton API documentation.

You do not need to include the Authorization header—Nexla attaches it automatically from your credential. Optionally, enable the response webhook option to send the response received from the Baton API after each call to a new Nexla webhook data source.

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 Baton endpoint, open the destination resource menu, and select Activate.

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