Planhat

Planhat

API integration

Expand your

CRM

integrations with the

Planhat

API integration.

Perform all CRUD operations through our Proxy and Unified APIs.

Perform all CRUD operations through our Proxy and Unified APIs.

Trusted by world-class product and engineering teams

  • Claira
  • Senja
  • springworks
  • TruvaAI
  • Sprinto
  • Dos&Co
  • Spendflo
  • Dos&Co
  • ZenAdmin
  • Cloudficient

Trusted by world-class product and engineering teams

  • Claira
  • Senja
  • Springworks
  • TruvaAI
  • Sprinto
  • SaaSMonk
  • Spendflo
  • Dos&Co
  • ZenAdmin
  • Cloudficient
  • Findr

superAI

Comprehensive Planhat AI Agent toolset with fine-grained access control and MCP Server capabilities. Planhat MCP Servers works seamlessly with Cursor and Claude AI editors for immediate consumption. Integrates with all popular LLM frameworks including LangChain and PyDantic for advanced AI orchestration.

create_a_planhat_timesheet

Create a new timesheet in Planhat. The timesheet is created with status 'submitted'. Returns fields…

delete_a_planhat_timesheet_by_id

Delete a specific timesheet in Planhat. Requires id. Returns n (matched records), ok (operation stat…

list_all_planhat_timesheet

List timesheets in Planhat. Returns a list of timesheets with fields _id, dateFrom, and dateTo in th…

get_single_planhat_timesheet_by_id

Get a specific timesheet in Planhat by id. Requires id. Returns timeEntries (list of entry IDs), sta…

update_a_planhat_timesheet_by_id

Update a specific timesheet in Planhat using id. Returns _id, timeEntries, status, assignedModel, as…

delete_a_planhat_time_entry_by_id

Delete a specific time entry in Planhat using the required id parameter. Returns n (number of operat…

update_a_planhat_time_entry_by_id

Update a specific time entry in Planhat using id. Returns fields such as _id, timesheetStatus, assig…

create_a_planhat_time_entry

Create a new time entry in Planhat. Requires date and hours. Hours must be positive, between 0.1 and…

list_all_planhat_time_entries

List time-entries in Planhat. Returns an array of time entries where each entry includes fields _id…

get_single_planhat_time_entry_by_id

Get a specific time entry in Planhat by id. Requires id. Returns fields such as timesheetStatus (sta…

update_a_planhat_sale_by_id

Update a specific sale in Planhat using id. The response returns fields such as _id, value, product,…

delete_a_planhat_sale_by_id

Delete a specific sale in Planhat. Requires id. Returns n, ok, and deletedCount fields indicating th…

get_single_planhat_sale_by_id

Get sale by id in Planhat. Requires id. Returns value, product, _currency, salesDate, companyId, and…

create_a_planhat_sale

Create a sale in Planhat. Requires companyId. Returns id, value, product, _currency, salesDate, comp…

list_all_planhat_sales

List sales in Planhat. Returns an array of sales objects including _id, product, value, and companyI…

create_a_planhat_objective

Create a new objective in Planhat. Requires name and companyId (can reference company externalId or…

delete_a_planhat_objective_by_id

Delete an objective in Planhat using the required id. Returns n (number of matched documents), ok (o…

update_a_planhat_objective_by_id

Update an objective in Planhat using id. The response returns fields such as _id, name, health, comp…

get_single_planhat_objective_by_id

Get a specific objective in Planhat by id. Requires id. Returns key fields such as _id, companyId, c…

list_all_planhat_objective

List objectives in Planhat. Returns an array of objectives with fields such as _id (objective identi…

delete_a_planhat_np_by_id

Delete an NPS record in Planhat by specifying id in the request URL. Returns n (number of matched re…

update_a_planhat_np_by_id

Update an NPS record in Planhat by id. Requires id. Returns fields such as _id, campaignId, email, s…

list_all_planhat_nps

List NPS records in Planhat. Returns fields such as _id, npsId, email, npsDate, nps score, npsCommen…

create_a_planhat_np

Create an NPS record in Planhat. Requires email and score. Returns _id, email, score, euId, cId, sco…

get_single_planhat_np_by_id

Get a specific NPS in Planhat by id. Returns _id, npsId, email, npsDate, nps, scoreType, cId, campai…

delete_a_planhat_churn_by_id

Delete a specific churn record in Planhat. Requires id. Returns fields n, ok, and deletedCount indic…

update_a_planhat_churn_by_id

Update a specific churn record in Planhat using id. The response returns fields such as _id, snoozed…

list_all_planhat_churn

List churn records in Planhat. Returns fields such as _id, licenseId, companyId, companyName, churnD…

get_single_planhat_churn_by_id

Get a specific churn record in Planhat using id. Requires id in the path. Returns _id, licenseId, co…

create_a_planhat_churn

Create a churn record in Planhat. Requires companyId and isChurn. Returns fields such as _id (record…

list_all_planhat_assets

List assets in Planhat. Returns an array of assets with fields _id, companyId, and name in the respo…

get_single_planhat_asset_by_id

Get a specific asset in Planhat by id. The response includes fields such as _id (unique identifier),…

create_a_planhat_asset

Create a new asset in Planhat. Requires name and companyId. Returns the created asset with fields su…

update_a_planhat_asset_by_id

Update an asset in Planhat using the required id parameter. Returns _id, name, companyId, externalId…

delete_a_planhat_asset_by_id

Delete a specific asset in Planhat. Requires id. Returns n, ok, and deletedCount fields indicating t…

list_all_planhat_custom_fields

Get a list of custom fields in Planhat. Returns fields such as _id, name, type, parent, and visibili…

get_single_planhat_custom_field_by_id

Get a specific custom field in Planhat by id. Requires id. Returns _id, isFeatured, listValues, pare…

create_a_planhat_custom_field

Create a custom field in Planhat. Requires name, parent, and type. Returns fields such as _id (uniqu…

update_a_planhat_custom_field_by_id

Update a specific custom-field in Planhat. Requires id. Returns fields such as _id, isFeatured, isHi…

delete_a_planhat_custom_field_by_id

Delete a specific custom field in Planhat using id. Returns fields n, ok, and deletedCount in the re…

list_all_planhat_conversations

List conversations in Planhat. Returns fields such as date, subject, snippet, companyId, companyName…

create_a_planhat_conversation

Create a new conversation in Planhat. Requires companyId. Returns conversation details including id,…

get_single_planhat_conversation_by_id

Get a specific conversation in Planhat using id. Returns key fields such as type, subject, snippet,…

update_a_planhat_conversation_by_id

Update a specific conversation in Planhat. Requires id. Returns fields such as _id, subject, descrip…

delete_a_planhat_conversation_by_id

Delete a specific conversation in Planhat. Requires id. Returns conversation details including starr…

update_a_planhat_user_by_id

Update a user in Planhat using id. The response returns fields such as _id, firstName, lastName, ema…

delete_a_planhat_user_by_id

Delete a specific user in Planhat using id. Requires the id parameter in the URL. Returns an empty J…

list_all_planhat_users

List all users in Planhat. Returns fields such as firstName, lastName, nickName, email, externalId,…

create_a_planhat_user

Create a new user in Planhat. Requires nickName, email, firstName, and lastName in the payload. Retu…

get_single_planhat_user_by_id

Get a specific user in Planhat using id. Returns fields including _id, firstName, lastName, email, p…

list_all_planhat_tickets

List tickets in Planhat. Returns fields such as _id, externalId, subject, snippet, status, email, ur…

delete_a_planhat_ticket_by_id

Delete a specific ticket in Planhat using id. Requires id in the request URL. Returns key ticket fie…

delete_a_planhat_task_by_id

Delete a specific task in Planhat. Requires id parameter in the request path. Returns n, ok, and del…

create_a_planhat_task

Create a new task in Planhat. Requires companyId. Returns fields such as mainType, action, status, c…

get_single_planhat_task_by_id

Get a specific task in Planhat by id. The response includes key fields such as mainType, status, com…

update_a_planhat_task_by_id

Update a specific task in Planhat using id. Returns fields such as mainType, status, action, descrip…

list_all_planhat_tasks

Get list of tasks in Planhat. Returns an array of tasks with fields such as _id, mainType, ownerId,…

create_a_planhat_project

Create a new project in Planhat. Requires name and companyId. Returns project details including _id,…

get_single_planhat_project_by_id

Get a specific project in Planhat by id. Returns fields including _id, companyId, companyName, name,…

update_a_planhat_project_by_id

Update a project in Planhat using id. Returns project details such as _id, companyId, name, startDat…

list_all_planhat_projects

List projects in Planhat. Returns an array of projects with fields _id (unique project identifier),…

delete_a_planhat_project_by_id

Delete a specific project in Planhat. Requires id. Returns n, ok, and deletedCount indicating the de…

delete_a_planhat_opportunity_by_id

Delete an opportunity in Planhat by id. Requires id. Returns fields n, ok, and deletedCount indicati…

list_all_planhat_opportunities

List opportunities in Planhat. Returns fields such as _id, title, and status for each opportunity. S…

get_single_planhat_opportunity_by_id

Get a specific opportunity in Planhat using id. Returns fields such as _id (unique identifier), stat…

create_a_planhat_opportunity

Create an opportunity in Planhat. Requires companyId. Returns fields such as _id, status, salesStage…

update_a_planhat_opportunity_by_id

Update an existing opportunity in Planhat using id or externalId. Requires id. Returns fields such a…

delete_a_planhat_license_by_id

Delete a specific license in Planhat. Requires id. Returns fields n, ok, and deletedCount indicating…

create_a_planhat_license

Create a new license in Planhat. Requires companyId. Returns details such as renewalStatus, companyI…

get_single_planhat_license_by_id

Get a specific license in Planhat using id. Returns renewalStatus, renewalDate, mrr, companyName, so…

update_a_planhat_license_by_id

Update a specific license in Planhat using id. Returns fields like renewalStatus, companyName, mrr,…

list_all_planhat_licenses

List licenses in Planhat. Returns an array of licenses with fields such as _id, companyId, value, an…

create_a_planhat_issue

Create a new issue in Planhat. Requires title. Optionally include companyIds or enduserIds. Returns…

update_a_planhat_issue_by_id

Update an issue in Planhat using id. Requires id. Returns fields such as _id, title, description, st…

delete_a_planhat_issue_by_id

Delete an issue in Planhat. Requires id. Returns n, ok, and deletedCount fields indicating the resul…

get_single_planhat_issue_by_id

Get a specific issue in Planhat by id. Returns fields such as _id, companyIds, title, status, create…

list_all_planhat_issues

Get a list of issues in Planhat. Returns an array of issues with fields _id, companyIds, title, and…

delete_a_planhat_enduser_by_id

Delete a specific enduser in Planhat using id. Returns confirmation fields n, ok, and deletedCount i…

list_all_planhat_endusers

List endusers in Planhat. Returns fields such as _id, companyId, name, email, lastActive, relevance,…

create_a_planhat_enduser

Create an enduser in Planhat. Requires companyId and at least one of email, externalId, or sourceId.…

update_a_planhat_enduser_by_id

Update an existing enduser in Planhat. Requires id. Returns fields such as _id, email, firstName, la…

get_single_planhat_enduser_by_id

Get details of a specific enduser in Planhat using id. Returns key fields such as _id, companyId, co…

update_a_planhat_invoice_by_id

Update an existing invoice in Planhat using its id. Returns fields such as _id, invoiceNo, amountTot…

delete_a_planhat_invoice_by_id

Delete an invoice in Planhat using id. Requires id. Returns n, ok, and deletedCount fields indicatin…

create_a_planhat_invoice

Create an invoice in Planhat. Requires cId. Optionally include invoiceDate and currency for meaningf…

get_single_planhat_invoice_by_id

Get a specific invoice by id in Planhat. Returns fields such as _id, invoiceNo, amountDue, amountPai…

list_all_planhat_invoices

List invoices in Planhat. Returns fields such as _id, invoiceNo, amountDue, amountPaid, status, cId,…

delete_a_planhat_company_by_id

Delete a company in Planhat using id. Requires id. Returns fields n, ok, and deletedCount indicating…

update_a_planhat_company_by_id

Update a specific company in Planhat using its id. The response returns details including _id, name,…

create_a_planhat_company

Create a new company in Planhat. Requires the name field. Returns company details including _id, nam…

get_single_planhat_company_by_id

Get a specific company in Planhat using id. Returns key fields including _id, name, phase, status, c…

list_all_planhat_companies

List companies in Planhat. Returns key fields including _id, name, status, phase, domains, tags, own…

create_a_planhat_campaign

Create a campaign in Planhat. Requires name and companyId. The response includes _id, name, campaign…

delete_a_planhat_campaign_by_id

Delete a specific campaign in Planhat. Requires id. Returns fields n, ok, and deletedCount indicatin…

update_a_planhat_campaign_by_id

Update a specific campaign in Planhat using id. The response returns key fields including _id, name,…

list_all_planhat_campaigns

List campaigns in Planhat. Returns an array of campaigns including _id, companyId, name, and campaig…

get_single_planhat_campaign_by_id

Get campaign by id in Planhat. Requires id. Returns key fields including _id, companyId, companyName…

Enhanced

Planhat

with AI Capabilities

AI Agent Toolset

AI Agent Toolset

MCP Server capabilities for seamless AI tool calling across all integration APIs

MCP Server capabilities for seamless AI tool calling across all integration APIs

Fine-Grained Control

Fine-Grained Control

Granular access control for all operations with custom method support

Granular access control for all operations with custom method support

Unlimited Customization

Unlimited Customization

Customize tool descriptions and parameters down to the finest detail for a workflow that feels built for you.

Customize tool descriptions and parameters down to the finest detail for a workflow that feels built for you.

Developer-First

Developer-First

Integrate with MCP clients like Cursor and Claude, or use frameworks like Langchain

Integrate with MCP clients like Cursor and Claude, or use frameworks like Langchain

Unified APIs for

Planhat

Skip writing code for every integration. Save time by using Truto's category-specific Unified APIs. You can use the schema we provide out of the box or customize and override the mappings to suit your needs with AI.

Accounts

The accounts represent a company in a CRM.

Unified CRM API

Contacts

The contacts represent an existing point of contact at a company in a CRM.

Unified CRM API

Engagements

The engagements represent an interaction noted in a CRM.

Unified CRM API

Notes

The notes represent a note on another object in a CRM.

Unified CRM API

Opportunities

The opportunities represent an opportunity in a CRM.

Unified CRM API

Tasks

The tasks represent a task in a CRM.

Unified CRM API

Users

The users represent a user in a CRM.

Unified CRM API

Fields

The fields of entities in a CRM.

Unified CRM API

Projects

Unified CRM API

Accounts

Accounts represent the companies or organizations that you are in contact with. Accounts have one or more Contacts associated with them.

Unified Ticketing API

Collections

Tickets and contacts can be grouped into Collections. Collection resource usually maps to the various grouping systems used in the underlying product. Some examples are lists, projects, epics, etc. Yo…

Unified Ticketing API

Tickets

Core resource which represents some work that needs to be carried out. Tickets are usually mapped to issues, tasks, work items, etc. depending on the underlying product.

Unified Ticketing API

Fields

Fields represent the attributes defined for various entities in the underlying product. Depending on the underlying product, custom attributes can be defined by a User on various entities like Ticket,…

Unified Ticketing API

Users

Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.

Unified Ticketing API

Workspaces

Workspaces represent the top-level subdivision in a ticketing system. They usually have their own set of settings, tickets, statuses, priorities and users. Some of the usual terminologies used by the…

Unified Ticketing API

Proxy API for

Planhat

Access all of the

Planhat

API without worrying about authentication and pagination. 

Truto's Proxy APIs are a 1-to-1 mapping of the

Planhat

CRM

API.

API call us you

You call us, we call

Planhat

and pass the response back in the same cycle.

Access all of the

Planhat

API without worrying about authentication and pagination. 

Truto's Proxy APIs are a 1-to-1 mapping of the

Planhat

CRM

API, you call us

we call

Planhat

and pass the response back in the same cycle.

Account Linking

Account Linking

Use Truto's frontend SDK to link your

customer's

Planhat

account.

We handle all the OAuth and API key flows. You do not need to create the OAuth app as well.

Account Linking

Account Linking

Use Truto's frontend SDK to link your

customer's

Planhat

account.

We handle all the OAuth and API key flows. You do not need to create the OAuth app as well.

Seamless authentication 

Don't spend time refreshing access tokens, and figuring out how to store them securely. We do it for you.

We also sprinkle them into the API requests. So you just have to deal with 1 API key, ours.

Seamless authentication 

Don't spend time refreshing access tokens, and figuring out how to store them securely. We do it for you.

We also sprinkle them into the API requests. So you just have to deal with 1 API key, ours.

Unified response format

Unified response format

Truto follows a single response format for it's Proxy and Unified APIs across all the integrations.

into a unified cursor based pagination and all of the data is always present in the result attribute.

Planhat

We translate

pagination

Unified response format

Unified response format

Truto follows a single response format for it's Proxy and Unified APIs across all the integrations.

into a unified cursor based pagination and all of the data is always present in the result attribute.

Planhat

We translate

pagination

Get

Get

Planhat

Planhat

integrated into your app

integrated into your app

without the hassle

without the hassle

Our team understands what it takes to make a unified API implementation successful.

Our team understands what it takes to make a unified API implementation successful.

Boost customer satisfaction

Boost customer satisfaction

When customers can easily integrate their new products into their existing systems, they’re more likely to stick around. It’s just common sense!

Developers

Empower engineers

Who wants to do boring grunt work? Not engineers! By taking care of integrations for them, they’ll have more time to focus on what really matters - making a great product.

Profits

Boost profits 

Optimise developer resources. Truto frees up time and saves money. Say hello to a healthier bottom line!

Wow Experience

Wow your prospects

Say 'Yes' to every integration request your prospects ask you for. Integrations should not deter deal closures.

Powered by AI

Tick Icon

Customize the mappings as you need using AI.

Tick Icon

Build your own unified API from scratch, aided by AI.

Take back focus where it matters. Let Truto do integrations.

Learn more about our unified api service and solutions. A short, crisp 30 minute call with folks who understand the problem of alternatives.

Take back focus where it matters. Let Truto do integrations.

Learn more about our unified api service and solutions. A short, crisp 30 minute call with folks who understand the problem of alternatives.

Take back focus where it matters. Let Truto do integrations.

Learn more about our unified api service and solutions. A short, crisp 30 minute call with folks who understand the problem of alternatives.

Take back focus where it matters. Let Truto do integrations.

Learn more about our unified api service and solutions. A short, crisp 30 minute call with folks who understand the problem of alternatives.

We have been able to dramatically accelerate our GTM timeline by several months as a result of Truto. The devs at Truto worked with us to build a unified API structure with our team so that we have a solid base for future integrations as well. The support has been very quick to respond to our inquiries and provide timely resolutions for our requests.

Josh Benson,

CEO of Omnitrain