ChurnZero is a customer success platform that gives customer success teams a real-time, 360-degree view of every account and contact by unifying product usage, CRM, support, sentiment, and revenue data. It helps teams monitor customer health, predict churn risk, automate onboarding journeys, run NPS and custom surveys, and drive renewals and expansion. The ChurnZero connector lets you sync accounts, contacts, events, churn scores, journeys, surveys, tasks, and user data, and push account, contact, attribute, and event updates back into ChurnZero.
Power end-to-end data operations for your ChurnZero API with Nexla. Our bi-directional ChurnZero connector is purpose-built for ChurnZero, 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 ChurnZero or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your ChurnZero 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
The ChurnZero REST API is an OData implementation that lets you read your customer success data, and a companion analytics endpoint lets you write account, contact, attribute, and event data back into ChurnZero. Authentication uses HTTP Basic Authentication, where your ChurnZero username is paired with an API key associated with that user. Before creating a credential in Nexla, complete the following in your ChurnZero account.
Your subdomain identifies your specific ChurnZero instance and region, and it forms the base of every API request URL.
Sign in to your ChurnZero account in a web browser.
Note the host portion of your ChurnZero URL. For example, if your URL is https://fivetran.us1app.churnzero.net, your subdomain is fivetran.us1app.
The subdomain includes the region segment (for example, us1app or eu1app). Enter the full host prefix exactly as it appears in your browser, excluding the .churnzero.net portion.
Because the REST API can return large volumes of data, ChurnZero gates access to readable entities behind Bulk Read Permissions. These permissions are configured per User Permission Group and apply to all users in that group.
Confirm that the user associated with your API key belongs to a User Permission Group that has the appropriate Bulk Read Permissions enabled for the entities you plan to ingest (for example, Accounts, Contacts, Events, or Surveys).
If an entity returns no data or an authorization error during testing, verify that the corresponding Bulk Read Permission is enabled for that group.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your ChurnZero login username in the Username field. This is the email address you use to sign in to ChurnZero, and it serves as the username portion of the Basic Authentication credential.
Enter your ChurnZero API key in the API Key field. This key was generated under Admin > API Keys and serves as the password portion of the Basic Authentication credential. This value is stored securely and should be kept confidential.
Enter your ChurnZero subdomain in the Subdomain field. This is the host prefix from your ChurnZero URL—for example, if your URL is https://fivetran.us1app.churnzero.net, enter fivetran.us1app.
Nexla validates the credential by making a test request to your ChurnZero account. A successful test confirms that the subdomain, username, and API key are correct and that the associated user has the required permissions.
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.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the ChurnZero connector tile, then select the credential that will be used to connect to the ChurnZero instance, and click Next; or, create a new ChurnZero credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common ChurnZero 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.
The ChurnZero REST API is an OData implementation, so most endpoint templates support $top (page size), $filter, and $orderby query options. Many templates expose a Days Back parameter that incrementally ingests records modified or created within a rolling window, and a Page Size parameter that controls how many records are requested per page. Pagination is handled automatically by following the OData @odata.nextLink value in each response.
For incremental endpoints, the Days Back parameter filters records by their last modified or created date relative to the current run time. Set this value to 0 to perform a full sync of all available records, and increase it when backfilling historical data.
Get Accounts
Retrieves all customer accounts with attributes, health scores, renewal dates, and billing details. Use this endpoint to maintain a synchronized copy of your ChurnZero account records for reporting and analysis.
Enter the number of accounts to return per page in the Page Size field. The default is 100, which is the OData maximum.
Enter the number of days to look back, based on each account's last modified date, in the Days Back field. The default is 30. Set this to 0 to perform a full sync of all accounts.
Records are ordered by last modified date in ascending order, and pagination is handled automatically. Account records are the foundation for most other ChurnZero entities, so ingesting them first is recommended.
Get Contacts
Retrieves all contacts across accounts, including email, role, engagement metrics, and custom attributes. Use this endpoint to sync the people associated with your customer accounts.
Enter the number of contacts to return per page in the Page Size field. The default is 100.
Enter the number of days to look back, based on each contact's last modified date, in the Days Back field. The default is 30. Set this to 0 to perform a full sync of all contacts.
Contacts are linked to accounts in ChurnZero. Ingesting the Get Accounts endpoint alongside this one provides the account context needed to join contact records to their parent accounts.
Get Events
Retrieves custom events tracked for contacts and accounts within a specified date range. Use this endpoint to analyze product usage and engagement signals over time.
Enter the number of events to return per page in the Page Size field. The default is 100.
Enter the number of days to look back, based on each event's created date, in the Days Back field. The default is 30.
Events are filtered and ordered by their created date. Because event volumes can be large, choose a Days Back value that balances data freshness against ingestion volume.
Get Event Types
Retrieves all event type definitions configured in ChurnZero, including name and description. Use this endpoint as reference data to label and categorize the events returned by the Get Events endpoint.
This endpoint requires no additional configuration. Select the template to ingest all configured event types.
Records are paginated automatically, and up to 100 records are requested per page.
Event type definitions change infrequently, so this endpoint is typically scheduled to run less often than the Get Events endpoint.
Get Churn Scores
Retrieves churn score model definitions for all accounts, including which score is designated as primary. Use this endpoint to understand how churn risk is modeled in your ChurnZero instance.
This endpoint requires no additional configuration. Select the template to ingest all churn score definitions.
Records are paginated automatically, and up to 100 records are requested per page.
This endpoint returns score model definitions rather than per-account score values. Use the Get Churn Score Calculations endpoint to retrieve the computed scores for each account over time.
Get Churn Score Calculations
Retrieves per-account churn score calculation history, syncing the last N days of score computations. Use this endpoint to track how each account's churn risk changes over time.
Enter the number of days of score calculation history to sync in the Days Back field. The default is 2, which is suitable for frequent incremental syncs. Increase this value when backfilling historical score data.
Score calculations can accumulate quickly across many accounts. A small Days Back value keeps each incremental run efficient, while a larger value supports one-time historical backfills.
Get Churn Score Factors
Retrieves churn score factor definitions, including factor type, name, and associated journey references. Use this endpoint as reference data to interpret the factor-level breakdown of churn scores.
This endpoint requires no additional configuration. Select the template to ingest all churn score factor definitions.
Records are paginated automatically, and up to 100 records are requested per page.
Pair this endpoint with Get Churn Score Factor Calculations to map each factor definition to the values calculated for individual accounts.
Get Churn Score Factor Calculations
Retrieves per-factor score breakdown calculations per account, showing each factor's contribution to the overall churn score. Use this endpoint for detailed root-cause analysis of churn risk.
Enter the number of days of factor calculation history to sync in the Days Back field. The default is 2. Increase this value when backfilling historical data.
This endpoint produces high-volume, granular data. Keep the Days Back value low for routine incremental syncs to manage ingestion volume.
Get User Accounts
Retrieves internal ChurnZero user accounts, such as customer success managers (CSMs) and admins, with role, email, and external ID fields. Use this endpoint to sync your team roster for ownership and assignment reporting.
This endpoint requires no additional configuration. Select the template to ingest all internal user accounts.
Records are ordered by last modified date and paginated automatically, with up to 100 records requested per page.
User accounts represent ChurnZero staff users, not your customer contacts. Use this data to attribute accounts and tasks to the responsible CSMs.
Get Segments
Retrieves all account and contact segment definitions, including sharing type and owner. Use this endpoint to sync the saved segments used for filtering and targeting in ChurnZero.
Select the entity type by which to filter segments from the Entity Type pulldown menu. The available values are Account, Contact, and Event, and the default is Account.
Create a separate data source for each entity type if you need to ingest segment definitions for accounts, contacts, and events.
Get Segment Column Sets
Retrieves saved column set configurations used for dynamic field selection in OData queries. Use this endpoint to understand which fields are grouped together for segment-based reporting.
This endpoint requires no additional configuration. Select the template to ingest all segment column set definitions.
Records are paginated automatically, and up to 100 records are requested per page.
Segment column sets are reference data that define reusable field groupings. They change infrequently and can be synced on a less frequent schedule.
Get Surveys
Retrieves all NPS and custom survey definitions, including recurrence and campaign settings. Use this endpoint to sync the survey configurations used to collect customer feedback.
This endpoint requires no additional configuration. Select the template to ingest all survey definitions.
Records are paginated automatically, and up to 100 records are requested per page.
Pair this endpoint with Get Survey Responses and Get Survey Follow-Ups to build a complete view of your survey program and its results.
Get Survey Responses
Retrieves survey responses, including NPS scores, follow-up answers, source, and respondent details. Use this endpoint to analyze customer sentiment and feedback trends.
Enter the number of days to look back for survey responses, based on the response created date, in the Days Back field. The default is 30.
Responses are filtered and ordered by their created date. Choose a Days Back value that captures your most recent survey campaigns while keeping ingestion volume manageable.
Get Survey Follow-Ups
Retrieves follow-up question definitions attached to surveys, including question text and type. Use this endpoint as reference data to interpret follow-up answers in survey responses.
This endpoint requires no additional configuration. Select the template to ingest all survey follow-up definitions.
Records are paginated automatically, and up to 100 records are requested per page.
Follow-up definitions provide the context needed to label the follow-up answers captured in the Get Survey Responses endpoint.
Get Tasks
Retrieves tasks assigned to CSMs, including due dates, priority, status, and associated accounts. Use this endpoint to track customer success workload and follow-up activity.
Enter the number of days to look back, based on each task's last modified date, in the Days Back field. The default is 30.
Pair this endpoint with Get Task Priorities and Get Task Statuses to translate the priority and status reference codes on each task into human-readable labels.
Get Task Priorities
Retrieves task priority reference data, including the priority name and an is-high-priority flag. Use this endpoint to label the priority values returned by the Get Tasks endpoint.
This endpoint requires no additional configuration. Select the template to ingest all task priority definitions.
This endpoint returns the complete set of priorities in a single request.
Task priority definitions are static reference data and are typically ingested once or on an infrequent schedule.
Get Task Statuses
Retrieves task status reference data, including default and closed status flags. Use this endpoint to label the status values returned by the Get Tasks endpoint.
This endpoint requires no additional configuration. Select the template to ingest all task status definitions.
This endpoint returns the complete set of statuses in a single request.
Task status definitions are static reference data and are typically ingested once or on an infrequent schedule.
Get Journeys
Retrieves journey definitions, including milestones, expected duration, and sharing configuration. Use this endpoint to sync the structured customer onboarding and success journeys defined in ChurnZero.
This endpoint requires no additional configuration. Select the template to ingest all journey definitions.
Records are paginated automatically, and up to 100 records are requested per page.
Journey definitions describe the overall structure of a journey. Use the related journey progress and milestone endpoints to track how individual accounts move through each journey.
Get Journey Milestones
Retrieves milestone definitions within journeys, including expected duration and task templates. Use this endpoint as reference data to interpret per-account milestone progress.
This endpoint requires no additional configuration. Select the template to ingest all journey milestone definitions.
Records are paginated automatically, and up to 100 records are requested per page.
Milestone definitions are the building blocks of journeys. Pair this endpoint with Get Journey Milestone Progress to track completion per account.
Get Journey Progress
Retrieves account-level journey progress records, including phase, status, and milestone completion. Use this endpoint to monitor where each account stands in its assigned journeys.
Enter the number of days to look back for journey progress updates, based on the last modified date, in the Days Back field. The default is 30.
Records are ordered by last modified date and paginated automatically. This endpoint provides the account-level rollup of journey progress; use the milestone-level endpoints for finer granularity.
Get Journey Milestone Progress
Retrieves per-account, per-milestone progress, including days in milestone and completion status. Use this endpoint for detailed tracking of how accounts advance through journey milestones.
Enter the number of days to look back for milestone progress updates, based on the last modified date, in the Days Back field. The default is 30.
Records are ordered by last modified date and paginated automatically. This endpoint complements Get Journey Progress with milestone-level detail for each account.
Get Journey Milestone Achievements
Retrieves completed milestone achievement records for accounts, with achievement date and name. Use this endpoint to report on which milestones accounts have successfully completed.
Enter the number of days to look back for milestone achievements, based on the created date, in the Days Back field. The default is 30.
Records are ordered by created date and paginated automatically. Achievement records are appended over time, so an incremental Days Back window captures newly completed milestones efficiently.
Get Journey Instances
Retrieves active journey instance records linking accounts to journeys, with start and end dates. Use this endpoint to see which accounts are currently enrolled in each journey.
Enter the number of days to look back for journey instance updates, based on the last modified date, in the Days Back field. The default is 30.
Records are ordered by last modified date and paginated automatically. A journey instance represents a single account's enrollment in a journey.
Get Journey Instance Tasks
Retrieves task records generated within journey instances, including condition and optional status. Use this endpoint to track the tasks automatically created as accounts progress through journeys.
Enter the number of days to look back for journey instance task updates, based on the last modified date, in the Days Back field. The default is 30.
Records are ordered by last modified date and paginated automatically. These tasks are scoped to journey instances and are distinct from the standalone tasks returned by the Get Tasks endpoint.
Get Journey Milestone Step Progress
Retrieves step-level progress within journey milestones per account, including completion status. Use this endpoint for the most granular view of how accounts complete the individual steps that make up each milestone.
Enter the number of days to look back for journey milestone step progress updates, based on the last modified date, in the Days Back field. The default is 30.
Records are ordered by last modified date and paginated automatically. This endpoint provides step-level detail beneath the milestone-level progress returned by Get Journey Milestone Progress.
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.
ChurnZero data sources can also be manually configured to ingest data from any valid ChurnZero REST API endpoint—including OData entities not covered by the pre-built templates, or when custom $select, $expand, or $filter expressions are needed. 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.
ChurnZero REST API read operations use the GET method. Endpoints follow the pattern https://{subdomain}.churnzero.net/public/v1/{Entity}, where {subdomain} is your account subdomain and {Entity} is an OData entity such as Account, Contact, or Event. Date/time macros are commonly used inside OData $filter expressions to ingest only records created or modified since the previous run—for example, $filter=ObjectLastModifiedDate gt {'{now-30}'}—using the ISO 8601 UTC format yyyy-MM-dd'T'HH:mm:ss'Z'.
ChurnZero OData responses wrap the returned records in a top-level value array alongside the @odata.nextLink pagination link, so enter $.value[*] as the path to data; pagination is handled automatically by following @odata.nextLink. You do not need to include the Basic Authentication header—Nexla adds it automatically based on your ChurnZero 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 ChurnZero 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.
Click the + icon on the Nexset that will be sent to the ChurnZero destination, and select the Send to Destination option from the menu. Select the ChurnZero connector from the list of available destination connectors, then select the credential that will be used to connect to the ChurnZero organization, and click Next; or, create a new ChurnZero credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common ChurnZero endpoints. ChurnZero write operations are submitted to a single ingestion endpoint, where each request specifies an action (such as setAccount, setContact, or trackEvent); the pre-built templates handle this action mapping and authentication automatically, so you only need to ensure that each Nexset record contains the required identifier fields described below. All write templates use batching to group multiple records into each API call for efficient delivery. 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.
ChurnZero identifies accounts and contacts by external IDs that you supply. Every record sent to a ChurnZero destination must include the appropriate identifier field—accountExternalId for account operations, and both accountExternalId and contactExternalId for contact and event operations.
Set Account
Creates or updates a customer account in ChurnZero. Use this endpoint to keep ChurnZero account records in sync with your source-of-truth system.
Ensure that each Nexset record includes an accountExternalId field, which uniquely identifies the account in ChurnZero. This field is required.
Include any additional account fields or custom attributes as record fields; they will be sent with the account upsert.
Records are batched in groups of up to 100 per API call.
ChurnZero performs an upsert: if an account with the given external ID exists, it is updated; otherwise, a new account is created.
Delete Account
Permanently deletes accounts from ChurnZero by external ID. Use this endpoint to remove accounts that should no longer exist in ChurnZero.
Ensure that each Nexset record includes the accountExternalId of the account to delete. This field is required.
Records are batched in groups of up to 50 per API call.
Deletion is irreversible. Verify the external IDs in your Nexset before activating this destination, as deleted account data cannot be recovered.
Set Contact
Creates or updates a contact in ChurnZero. Use this endpoint to keep the people associated with your accounts in sync.
Ensure that each Nexset record includes both accountExternalId and contactExternalId, which together uniquely identify the contact within its account. Both fields are required.
Include any additional contact fields or custom attributes as record fields; they will be sent with the contact upsert.
Records are batched in groups of up to 100 per API call.
The pairing of accountExternalId and contactExternalId forms the composite key ChurnZero uses to match contacts to accounts.
Delete Contact
Permanently removes contacts from ChurnZero. Use this endpoint to remove contacts that should no longer exist in ChurnZero.
Ensure that each Nexset record includes both accountExternalId and contactExternalId. Both fields are required.
Records are batched in groups of up to 50 per API call.
Deletion is irreversible. Verify the external IDs in your Nexset before activating this destination, as deleted contact data cannot be recovered.
Track Event
Sends custom events to ChurnZero for a contact. Use this endpoint to record product usage and engagement activity that feeds health scores and churn models.
Ensure that each Nexset record includes accountExternalId, contactExternalId, and eventName. These fields are required.
Include any additional event metadata, such as an event date or quantity, as record fields.
Records are batched in groups of up to 200 per API call.
Track Event supports the highest batch size of the write endpoints, making it well suited to high-volume engagement and usage data.
Set Account Attribute
Sets or updates custom attribute values on a ChurnZero account. Use this endpoint to push computed metrics or external data points onto your account records.
Ensure that each Nexset record includes the accountExternalId of the target account, along with the attribute name and value fields. The accountExternalId field is required.
Records are batched in groups of up to 100 per API call.
This template targets the Account entity. Use the Set Contact Attribute endpoint to update attributes on individual contacts.
Set Contact Attribute
Sets or updates custom attribute values on a ChurnZero contact. Use this endpoint to enrich contact records with external data or computed values.
Ensure that each Nexset record includes both accountExternalId and contactExternalId, along with the attribute name and value fields. Both identifier fields are required.
Records are batched in groups of up to 100 per API call.
This template targets the Contact entity. Use the Set Account Attribute endpoint to update attributes at the account level.
Increment Attribute
Increments a numeric attribute on an Account or Contact. Use this endpoint to add to a running total without first reading the current value.
Select the entity type to increment from the Entity Type pulldown menu. The available values are Account and Contact (case-sensitive), and the default is Account. This setting is required.
Ensure that each Nexset record includes the appropriate identifier field(s)—accountExternalId for Account, or both accountExternalId and contactExternalId for Contact—along with the attribute name and the increment amount.
Records are batched in groups of up to 100 per API call.
Only numeric custom attributes can be incremented. Ensure the target attribute is defined as numeric in ChurnZero before using this endpoint.
ChurnZero destinations can also be manually configured to send data to the ChurnZero ingestion API. 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.
ChurnZero write operations are submitted using the POST method with application/json content, to the URL https://{subdomain}.churnzero.net/i, where {subdomain} is your account subdomain; the specific operation is determined by the action value included in the request body. You do not need to include any headers already present in the credentials.
Record batching is required to construct the ChurnZero request body: select the Property Inside JSON Object grouping algorithm with the property name data to place batched records in the data property, and use the Other Props field to include the action value for the desired operation. The pre-built ChurnZero templates use batch sizes ranging from 50 (Delete Account, Delete Contact) up to 200 (Track Event) records per call, depending on the operation. Nexla can also send the response received from the ChurnZero API after each call to a new Nexla webhook data source, to keep track of the status of each API call.
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 ChurnZero endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to ChurnZero until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.