---
title: ChurnZero API Integration on Truto
slug: churnzero
category: CRM
canonical: "https://truto.one/integrations/detail/churnzero/"
---

# ChurnZero API Integration on Truto



**Category:** CRM  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 123 tools for ChurnZero that AI agents can call directly.

- **list_all_churn_zero_accounts** — Get entities from Account
- **get_single_churn_zero_account_by_id** — Get entity from Account by key
- **churn_zero_accounts_lookup_direct_parent_account** — Get DirectParentAccount from Account
- **churn_zero_accounts_lookup_parent_account** — Get ParentAccount from Account
- **churn_zero_accounts_lookup_primary_churn_score** — Get PrimaryChurnScore from Account
- **churn_zero_accounts_lookup_ultimate_parent_account** — Get UltimateParentAccount from Account
- **churn_zero_accounts_lookup_user_account** — Get UserAccount from Account
- **churn_zero_accounts_lookup_by_external_id** — Get an Account by AccountExternalId
- **list_all_churn_zero_churn_scores** — Get entities from ChurnScore
- **get_single_churn_zero_churn_score_by_id** — Get entity from ChurnScore by key
- **list_all_churn_zero_churn_score_calculations** — Get entities from ChurnScoreCalculation
- **get_single_churn_zero_churn_score_calculation_by_id** — Get entity from ChurnScoreCalculation by key
- **churn_zero_churn_score_calculations_lookup_account** — Get Account from ChurnScoreCalculation
- **churn_zero_churn_score_calculations_lookup_churn_score** — Get ChurnScore from ChurnScoreCalculation
- **list_all_churn_zero_churn_score_factors** — Get entities from ChurnScoreFactor
- **get_single_churn_zero_churn_score_factor_by_id** — Get entity from ChurnScoreFactor by key
- **churn_zero_churn_score_factors_lookup_churn_score** — Get ChurnScore from ChurnScoreFactor
- **churn_zero_churn_score_factors_lookup_journey** — Get Journey from ChurnScoreFactor
- **list_all_churn_zero_churn_score_factor_calculations** — Get entities from ChurnScoreFactorCalculation
- **get_single_churn_zero_churn_score_factor_calculation_by_id** — Get entity from ChurnScoreFactorCalculation by key
- **churn_zero_churn_score_factor_calculations_lookup_account** — Get Account from ChurnScoreFactorCalculation
- **churn_zero_churn_score_factor_calculations_lookup_churn_score** — Get ChurnScore from ChurnScoreFactorCalculation
- **churn_score_factor_calculations_lookup_churn_score_factor** — Get ChurnScoreFactor from ChurnScoreFactorCalculation
- **list_all_churn_zero_contacts** — Get entities from Contact
- **get_single_churn_zero_contact_by_id** — Get entity from Contact by key
- **churn_zero_contacts_lookup_account** — Get Account from Contact
- **churn_zero_contacts_lookup_by_external_id** — Get a Contact by AccountExternalId and ContactExternalId
- **list_all_churn_zero_events** — Get entities from Event
- **get_single_churn_zero_event_by_id** — Get entity from Event by key
- **churn_zero_events_lookup_account** — Get Account from Event
- **churn_zero_events_lookup_contact** — Get Contact from Event
- **churn_zero_events_lookup_event_type** — Get EventType from Event
- **create_a_churn_zero_event** — Track a usage event for an account and contact (the event type is created if it does not exist). Uses the HTTP push API.
- **list_all_churn_zero_event_types** — Get entities from EventType
- **get_single_churn_zero_event_type_by_id** — Get entity from EventType by key
- **list_all_churn_zero_journeys** — Get entities from Journey
- **get_single_churn_zero_journey_by_id** — Get entity from Journey by key
- **list_all_churn_zero_journey_instances** — Get entities from JourneyInstance
- **get_single_churn_zero_journey_instance_by_id** — Get entity from JourneyInstance by key
- **churn_zero_journey_instances_lookup_account** — Get Account from JourneyInstance
- **churn_zero_journey_instances_lookup_journey** — Get Journey from JourneyInstance
- **list_all_churn_zero_journey_milestones** — Get entities from JourneyMilestone
- **get_single_churn_zero_journey_milestone_by_id** — Get entity from JourneyMilestone by key
- **churn_zero_journey_milestones_lookup_journey** — Get Journey from JourneyMilestone
- **list_all_churn_zero_journey_milestone_achievements** — Get entities from JourneyMilestoneAchievement
- **get_single_churn_zero_journey_milestone_achievement_by_id** — Get entity from JourneyMilestoneAchievement by key
- **journey_milestone_achievements_lookup_journey_milestone** — Get JourneyMilestone from JourneyMilestoneAchievement
- **list_all_churn_zero_journey_milestone_progress** — Get entities from JourneyMilestoneProgress
- **get_single_churn_zero_journey_milestone_progress_by_id** — Get entity from JourneyMilestoneProgress by key
- **churn_zero_journey_milestone_progress_lookup_account** — Get Account from JourneyMilestoneProgress
- **churn_zero_journey_milestone_progress_lookup_journey** — Get Journey from JourneyMilestoneProgress
- **churn_zero_journey_milestone_progress_lookup_journey_instance** — Get JourneyInstance from JourneyMilestoneProgress
- **churn_zero_journey_milestone_progress_lookup_journey_milestone** — Get JourneyMilestone from JourneyMilestoneProgress
- **list_all_churn_zero_journey_milestone_step_progress** — Get entities from JourneyMilestoneStepProgress
- **get_single_churn_zero_journey_milestone_step_progress_by_id** — Get entity from JourneyMilestoneStepProgress by key
- **churn_zero_journey_milestone_step_progress_lookup_account** — Get Account from JourneyMilestoneStepProgress
- **churn_zero_journey_milestone_step_progress_lookup_journey** — Get Journey from JourneyMilestoneStepProgress
- **journey_milestone_step_progress_lookup_journey_instance** — Get JourneyInstance from JourneyMilestoneStepProgress
- **journey_milestone_step_progress_lookup_journey_milestone** — Get JourneyMilestone from JourneyMilestoneStepProgress
- **journey_milestone_step_progress_lookup_journey_milestone_achieve** — Get JourneyMilestoneAchievement from JourneyMilestoneStepProgress
- **journey_milestone_step_progress_lookup_journey_milestone_task** — Get JourneyMilestoneTask from JourneyMilestoneStepProgress
- **churn_zero_journey_milestone_step_progress_lookup_task** — Get Task from JourneyMilestoneStepProgress
- **churn_zero_journey_milestone_step_progress_lookup_task_status** — Get TaskStatus from JourneyMilestoneStepProgress
- **list_all_churn_zero_journey_milestone_tasks** — Get entities from JourneyMilestoneTask
- **get_single_churn_zero_journey_milestone_task_by_id** — Get entity from JourneyMilestoneTask by key
- **churn_zero_journey_milestone_tasks_lookup_journey_milestone** — Get JourneyMilestone from JourneyMilestoneTask
- **list_all_churn_zero_journey_progress** — Get entities from JourneyProgress
- **get_single_churn_zero_journey_progress_by_id** — Get entity from JourneyProgress by key
- **churn_zero_journey_progress_lookup_account** — Get Account from JourneyProgress
- **churn_zero_journey_progress_lookup_journey** — Get Journey from JourneyProgress
- **churn_zero_journey_progress_lookup_journey_instance** — Get JourneyInstance from JourneyProgress
- **list_all_churn_zero_meetings** — Get entities from Meeting
- **get_single_churn_zero_meeting_by_id** — Get entity from Meeting by key
- **churn_zero_meetings_lookup_account** — Get Account from Meeting
- **churn_zero_meetings_lookup_meeting_type** — Get MeetingType from Meeting
- **churn_zero_meetings_lookup_user_account** — Get UserAccount from Meeting
- **list_all_churn_zero_meeting_types** — Get entities from MeetingType
- **get_single_churn_zero_meeting_type_by_id** — Get entity from MeetingType by key
- **list_all_churn_zero_messages** — Get entities from Message
- **get_single_churn_zero_message_by_id** — Get entity from Message by key
- **churn_zero_messages_lookup_meeting** — Get Meeting from Message
- **churn_zero_messages_lookup_note** — Get Note from Message
- **churn_zero_messages_lookup_survey_response** — Get SurveyResponse from Message
- **list_all_churn_zero_notes** — Get entities from Note
- **get_single_churn_zero_note_by_id** — Get entity from Note by key
- **churn_zero_notes_lookup_account** — Get Account from Note
- **churn_zero_notes_lookup_note_type** — Get NoteType from Note
- **list_all_churn_zero_note_types** — Get entities from NoteType
- **get_single_churn_zero_note_type_by_id** — Get entity from NoteType by key
- **list_all_churn_zero_segments** — Get entities from Segment
- **get_single_churn_zero_segment_by_id** — Get entity from Segment by key
- **churn_zero_segments_lookup_user_account** — Get UserAccount from Segment
- **list_all_churn_zero_segment_column_sets** — Get entities from SegmentColumnSet
- **get_single_churn_zero_segment_column_set_by_id** — Get entity from SegmentColumnSet by key
- **churn_zero_segment_column_sets_lookup_user_account** — Get UserAccount from SegmentColumnSet
- **list_all_churn_zero_surveys** — Get entities from Survey
- **get_single_churn_zero_survey_by_id** — Get entity from Survey by key
- **list_all_churn_zero_survey_responses** — Get entities from SurveyResponse
- **get_single_churn_zero_survey_response_by_id** — Get entity from SurveyResponse by key
- **churn_zero_survey_responses_lookup_account** — Get Account from SurveyResponse
- **churn_zero_survey_responses_lookup_contact** — Get Contact from SurveyResponse
- **churn_zero_survey_responses_lookup_survey** — Get Survey from SurveyResponse
- **list_all_churn_zero_tasks** — Get entities from Task
- **get_single_churn_zero_task_by_id** — Get entity from Task by key
- **churn_zero_tasks_lookup_account** — Get Account from Task
- **churn_zero_tasks_lookup_contact** — Get Contact from Task
- **churn_zero_tasks_lookup_journey** — Get Journey from Task
- **churn_zero_tasks_lookup_meeting** — Get Meeting from Task
- **churn_zero_tasks_lookup_note** — Get Note from Task
- **churn_zero_tasks_lookup_task_priority** — Get TaskPriority from Task
- **churn_zero_tasks_lookup_task_status** — Get TaskStatus from Task
- **churn_zero_tasks_lookup_user_account** — Get UserAccount from Task
- **list_all_churn_zero_task_priorities** — Get entities from TaskPriority
- **get_single_churn_zero_task_priority_by_id** — Get entity from TaskPriority by key
- **list_all_churn_zero_task_status** — Get entities from TaskStatus
- **get_single_churn_zero_task_status_by_id** — Get entity from TaskStatus by key
- **list_all_churn_zero_user_accounts** — Get entities from UserAccount
- **get_single_churn_zero_user_account_by_id** — Get entity from UserAccount by key
- **update_a_churn_zero_account_attribute_by_id** — Set one account attribute (standard or custom field) through the HTTP push API. Standard fields: Name, NextRenewalDate, TotalContractAmount, IsActive, BillingAddressLine1/Line2/City/State/Zip, StartDate, EndDate, LicenseCount, OwnerUserAccount, ParentAccountExternalId.
- **create_a_churn_zero_account_attribute_increment** — Add to a numeric account attribute (negative values subtract) through the HTTP push API.
- **update_a_churn_zero_contact_attribute_by_id** — Set one contact attribute (standard or custom field) through the HTTP push API. Standard fields: FirstName, LastName, Email.
- **create_a_churn_zero_contact_attribute_increment** — Add to a numeric contact attribute (negative values subtract) through the HTTP push API.
- **create_a_churn_zero_time_in_app** — Record a contact's time in your app between two timestamps through the HTTP push API.

## How it works

1. **Link your customer's ChurnZero account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach ChurnZero.** The Proxy API is a 1-to-1 mapping of the ChurnZero API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Enrich customer accounts with billing and subscription data** — If you're a billing or subscription management SaaS, offering a ChurnZero integration lets your mutual customers automatically sync MRR, contract values, seat counts, and renewal dates into ChurnZero so CS teams can trigger renewal and expansion playbooks without manual data entry.
- **Push product usage and session telemetry for health scoring** — Product analytics platforms can offer a native ChurnZero connector so their users can stream feature events and in-app session time directly into ChurnZero, feeding the health scores and adoption dashboards CSMs depend on.
- **Surface CS context inside helpdesks and sales tools** — If you build a support, sales, or collaboration tool, pulling ChurnZero health scores, churn score factors, and account attributes lets your users show a real-time risk badge next to tickets, deals, and conversations so agents can prioritize at-risk accounts.
- **Automate CSM activity logging from meetings and conversations** — Conversation intelligence, meeting, and note-taking tools can push meeting records and notes into ChurnZero against the right account and contact, eliminating manual QBR prep and keeping the CS timeline complete.
- **Sync onboarding and lifecycle progress with external project tools** — Project management and onboarding tools can read ChurnZero journey, milestone, and task progress to mirror lifecycle status in their own UI, helping implementation teams see exactly where customers are stuck.

## What you can build

- **Account attribute sync for subscription data** — Use update and increment operations on ChurnZero account attributes to keep renewal dates, contract amounts, license counts, and consumed credits continuously aligned with your system of record.
- **Event and time-in-app ingestion pipeline** — Create ChurnZero events and time-in-app records from your product telemetry so feature usage and active session duration flow into health scoring in near real time.
- **Embedded account health widget** — Fetch an account's primary churn score and underlying churn score factors to render a Red/Yellow/Green health badge and risk breakdown inside your own app.
- **Journey and milestone progress dashboard** — Read journeys, journey instances, milestones, and milestone progress to show customers' onboarding and lifecycle status, including which steps and tasks are outstanding.
- **Two-way activity and note logging** — Create notes, tasks, and meeting references in ChurnZero from support conversations or calendar events, and pull them back to display a unified activity timeline in your product.
- **Survey response and VoC enrichment view** — Ingest or read survey responses tied to accounts and contacts so NPS and CSAT signals captured in your tool are visible inside ChurnZero and reflected in churn factors.

## FAQs

### What ChurnZero objects can I read through this integration?

Truto exposes read access to accounts, contacts, user accounts, events and event types, churn scores and their factors and calculations, journeys with their instances, milestones, milestone tasks, and progress records, meetings and meeting types, notes and note types, messages, tasks (with priorities and statuses), segments and segment column sets, and surveys with their responses.

### Which write operations are supported?

You can create ChurnZero events, create time-in-app records, update account attributes by ID, create account attribute increments, update contact attributes by ID, and create contact attribute increments. Other objects are currently read-only through this integration.

### How do end users connect their ChurnZero account?

Your users authenticate their ChurnZero workspace through Truto's hosted connection flow, and Truto manages credential storage and refresh so you never handle ChurnZero API keys directly in your product.

### Can I look up accounts or contacts by my own system's ID?

Yes. Dedicated lookup endpoints let you resolve a ChurnZero account or contact by its external ID, which makes it straightforward to map records between your product and ChurnZero without storing ChurnZero IDs everywhere.

### How do I keep usage-based health scores fresh?

Stream granular actions via the create event endpoint as they happen, and push session duration via create time-in-app on a cadence that matches your product's telemetry. Both feed directly into ChurnZero's health scoring inputs.

### Can I see why an account is at risk, not just the score?

Yes. In addition to the primary churn score, you can list and retrieve churn score factors and factor calculations for an account, which expose the underlying drivers such as low usage or support volume so you can show a full risk breakdown.

### Does Truto handle pagination and rate limits for ChurnZero?

Yes. List endpoints are normalized with consistent pagination, and Truto handles ChurnZero's API quirks and rate limit behavior so you can focus on product logic instead of transport details.
