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

# Salesforce API Integration on Truto



**Category:** CRM  
**Status:** Generally available

## Unified APIs

### Unified CRM API

- **Accounts** — The accounts represent a company in a CRM.
- **Associations** — 
- **Contacts** — The contacts represent an existing point of contact at a company in a CRM.
- **Engagement Types** — The engagement types represent an interaction activity in a CRM.
- **Engagements** — The engagements represent an interaction noted in a CRM.
- **Fields** — The fields of entities in a CRM.
- **Leads** — The leads represent a potential customer in a CRM.
- **Notes** — The notes represent a note on another object in a CRM.
- **Opportunities** — The opportunities represent an opportunity in a CRM.
- **Stages** — The stages represent a stage of an opportunity in a CRM.
- **Tasks** — The tasks represent a task in a CRM.
- **Users** — The users represent a user in a CRM.

### Unified User Directory API

- **Activities** — Activities are the actions performed by users in the source application.
- **Licenses** — Licenses represent concepts like user seats in apps that support them
- **Me** — 
- **Organizations** — Organizations are the top level entity in the source application. Users are associated with an organization.
- **Roles** — The Role object represents a role of a User.
- **Users** — The User object represents a User.
- **Utilization** — Utilization object represents utilization reports.

### Unified Ticketing API

- **Attachments** — Attachments are the files associated with a ticket or a comment.
- **Comments** — Comments represent the communication happening on a Ticket, both between a User and a Contact and the internal things like notes, private comments, etc. A Ticket can have one or more Comments.
- **Contacts** — Contact represent the external people you are in contact with. These could be customers, leads, etc. Contacts can be associated with an Account if the underlying product supports it.
- **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, Contact, etc. is_user_defined attribute within Field can be used to differentiate between custom and system defined Fields.
- **Ticket Status** — Ticket Status represents the completion level of the Ticket. Some products provide customizing the Ticket Status.
- **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.
- **Users** — Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.

### Unified Search API

- **Search** — Search endpoint for all the apps.

## How it works

1. **Link your customer's Salesforce 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 Salesforce.** The Proxy API is a 1-to-1 mapping of the Salesforce 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

- **Log product activity to the Salesforce timeline automatically** — SaaS companies push in-app events — emails sent, calls made, feature usage — as Engagements, Tasks, or Notes on the relevant Contact or Account in Salesforce. This keeps sales reps informed without switching tabs, and it's one of the most requested integrations by RevOps teams.
- **Enrich Salesforce records with product telemetry via custom fields** — Push SaaS-specific data like health scores, subscription tiers, or last login dates into custom Fields on Salesforce Accounts or Contacts. This lets sales and CS teams segment, prioritize, and act on product signals directly inside their CRM without manual data entry.
- **Sync leads and contacts bidirectionally to keep systems in lockstep** — When a new user signs up in your product or a lead is captured externally, search Salesforce for an existing Contact or Lead and create one if it doesn't exist — and vice versa. Continuous bidirectional sync eliminates duplicate records and ensures both systems reflect the latest state.
- **Automate opportunity and pipeline updates from external triggers** — When a contract is signed, a quote is approved, or a self-serve user upgrades, automatically create or update an Opportunity and move its Stage in Salesforce. This removes manual deal updates and gives sales leadership accurate, real-time pipeline data for forecasting.
- **Surface Salesforce context inside your product's UI** — Pull Account, Opportunity, and Contact data from Salesforce into your app so your end users — whether they're support agents, CSMs, or marketers — can see deal status, ownership, and relationship history without leaving your product.

## What you can build

- **Visual custom field mapper** — Use the Fields resource to read all standard and custom fields from your users' Salesforce instances, then present a drag-and-drop UI that lets them map your product's data points to the exact Salesforce fields their RevOps team has defined.
- **Automated activity logger** — Write every meaningful in-app action — calls, emails, meetings, survey completions — as an Engagement or Task on the correct Salesforce Contact or Account, complete with the right owner assignment via the Users resource.
- **Two-way contact and account sync** — Keep Contacts and Accounts continuously synchronized between your product and Salesforce using the Unified CRM API, handling creates, updates, and deduplication so both systems always agree.
- **Pipeline automation engine** — Automatically create Opportunities, update Stages, and adjust deal amounts in Salesforce when key events happen in your product — like a contract being signed or a usage threshold being crossed.
- **Intelligent lead creation with duplicate detection** — Use the Unified Search API to check for existing Leads or Contacts before creating new records, preventing duplicates and respecting the data hygiene rules that Salesforce admins enforce.
- **Account-level engagement feed** — Pull Engagements, Notes, and Tasks from a Salesforce Account into your product's interface so your users can see the full customer interaction history alongside your own product data.

## FAQs

### What authentication method does Truto use for Salesforce?

Truto handles Salesforce's OAuth 2.0 flow end-to-end, including token refresh. Your end users authenticate through a managed consent screen — you don't need to build or maintain any auth logic yourself.

### How does Truto handle Salesforce's API rate limits?

Truto manages pagination and respects Salesforce's API rate limits automatically. It handles retries and backoff so your integration doesn't hit throttling errors, even when syncing large volumes of records across heavily-used Salesforce orgs.

### Can I read and write to custom fields on Salesforce objects?

Yes. The Unified CRM API's Fields resource lets you discover all standard and custom fields on objects like Account, Contact, Lead, and Opportunity — including their data types. You can then read from and write to those fields, which is essential since nearly every Salesforce instance is heavily customized.

### Which Truto Unified APIs support Salesforce?

Salesforce is supported across the Unified CRM API (Accounts, Contacts, Leads, Opportunities, Stages, Engagements, Tasks, Notes, Users, Fields, Associations, Engagement Types), the Unified User Directory API, the Unified Ticketing API, and the Unified Search API.

### Can I search for existing records before creating new ones to avoid duplicates?

Yes. The Unified Search API's Search resource lets you query Salesforce for existing Contacts, Leads, or Accounts by email, name, or other identifiers before creating new records — critical for maintaining data quality in your users' CRM.

### Does Truto support associating records — for example, linking an Engagement to an Opportunity?

Yes. The Associations resource in the Unified CRM API lets you create and read relationships between objects, such as linking a Note to a specific Opportunity or associating a Contact with an Account, mirroring Salesforce's native relationship model.

## Related reading

- [How to Build a Salesforce API Integration: Code Samples & Architecture](https://truto.one/blog/how-to-build-a-salesforce-api-integration-hands-on-guide-with-code-samples/) — A comprehensive, technical blueprint for building a Salesforce API integration. Learn how to handle OAuth lifecycles, REST vs Bulk API 2.0, custom objects, and strict rate limits.
- [Why Unified API Data Models Break on Custom Salesforce Objects (And How to Fix It)](https://truto.one/blog/why-unified-api-data-models-break-on-custom-salesforce-objects-and-how-to-fix-it/) — Traditional unified APIs collapse under enterprise complexity by stripping out custom Salesforce objects. Learn how to fix this with declarative mapping.
- [Why Unified Data Models Break on Custom Salesforce Objects (And How to Fix It)](https://truto.one/blog/why-unified-data-models-break-on-custom-salesforce-objects-and-how-jsonata-transformations-solve-it/) — Rigid unified APIs strip custom Salesforce objects. Learn how declarative JSONata transformations and multi-level overrides solve schema normalization.
- [How to Handle Custom Salesforce Fields Across Enterprise Customers](https://truto.one/blog/how-to-handle-custom-salesforce-fields-across-enterprise-customers/) — Learn the scalable architectural pattern for handling Salesforce custom fields (__c) across enterprise customers using data-driven mapping instead of brittle per-customer code.
- [How to Handle Custom Fields and Custom Objects in Salesforce via API](https://truto.one/blog/how-to-handle-custom-fields-and-custom-objects-in-salesforce-via-api/) — Learn how to programmatically handle Salesforce custom fields (__c) and custom objects via API without writing per-customer integration code. Covers SOQL, Metadata API, and data-driven mapping.
- [How to Connect AI Agents to Read and Write Data in Salesforce and HubSpot](https://truto.one/blog/how-to-connect-ai-agents-to-read-and-write-data-in-salesforce-and-hubspot/) — Learn how to give AI agents read/write access to Salesforce and HubSpot. Compare custom LangChain tools, vendor MCP servers, and unified APIs for production CRM integration.
