· 17 min read

Salesforce Integration User: License, Setup and Best Practices (2026)

Every system that talks to Salesforce logs in as someone. If that someone is an admin’s account, every integration can read and change everything, and nobody can tell which system did what. Here is how to set up a proper Salesforce integration user: the Integration user licenses included with your edition, the API-only profile, permission sets, OAuth and monitoring.
A user badge with a key and a lock connected by a cable to a CRM cloud, illustrating a dedicated Salesforce integration user
Cleaning up your Salesforce integration users?Tell us which systems connect to your org today. We’ll map what each one needs, set up least-privilege integration users and OAuth apps, and build and support the integrations themselves.
Review my integration users

What a Salesforce integration user is, and why it matters

A Salesforce integration user is a user record that no person logs in as. An external system (an ERP, a marketing platform, a data warehouse, a phone system) authenticates as that user and calls the Salesforce API. Every record it reads or writes is checked against that user’s permissions and stamped with its name.

That makes the integration user your main control point. Salesforce Help puts the recommendation plainly: following the principle of least privilege, create and configure one Salesforce user for every integration. Its reasons:

  • Scope. Each user sees only the subset of data and functions its integration needs.
  • Traceability. Created By, Last Modified By, login history and API logs point to one system, not “Admin.”
  • Blast radius. If one vendor is breached or one secret leaks, you shut off one user and one app, not all of them.

The common anti-pattern is the opposite: one admin’s login (or one shared “integration@” user with System Administrator) used by five tools. It works until that person leaves, a password expires, or a single compromised token exposes the whole org.

The Salesforce Integration user license, explained

Salesforce sells a user license made for this job, called Salesforce Integration. According to Salesforce Help, as of October 2026 it works like this:

  • Editions: available in Enterprise, Unlimited, Performance and Developer editions.
  • Included licenses: orgs in supported editions are granted a limited number of Salesforce Integration user licenses by default. For more, Salesforce says to contact your account executive about add-on licenses.
  • API only: users with this license are not authorized to access Salesforce data or features through any user interface. They connect through the REST, SOAP or Bulk APIs.
  • What it unlocks: the Minimum Access - API Only Integrations profile and the Salesforce API Integration permission set license.

To see what you have, open Setup, then Company Information. Salesforce Integration appears under User Licenses (total and used), and Salesforce API Integration under Permission Set Licenses.

The Minimum Access - API Only Integrations profile

This profile enables API access and restricts the user to API access. You can’t turn off those two settings, including on clones of the profile, but you can change its other permissions, settings and data access. Salesforce’s developer blog describes it as based on the Minimum Access - Salesforce profile, with only the bare minimum.

It replaced the older Salesforce API Only System Integrations profile in Spring ’24, after a known issue where the old one granted access to custom objects it shouldn’t have. New orgs only get the new profile. If your org is older and integration users still sit on the old profile, Salesforce recommends moving them.

One detail is easy to miss: Salesforce Help notes that users with this profile can also access objects that are accessible to all users. Review the profile in your own org before you assume it grants nothing.

The Salesforce API Integration permission set license

On its own, the profile gives the user almost nothing to work with. The Salesforce API Integration permission set license extends the Integration license with many of the user and object permissions available on the standard System Administrator profile.

The key word is available. The permission set license only makes permissions grantable; it doesn’t grant them. You still create a permission set tied to this license, switch on exactly the object, field and system permissions the integration needs, and assign it.

Some integrations need other permission set licenses too (for example for an industry cloud or a managed package), and Salesforce notes that not every one can be assigned to an Integration-licensed user.

Not every connector works with it. Salesforce’s admin blog warns that not all integrations work with this license, and you may not be able to assign a managed package’s permission set to an integration user. Docusign is one example: its documentation says its Salesforce integration user can’t use this license type and recommends a Salesforce Standard User license instead. Ask the vendor before you build around it, and test in a sandbox.

License options compared

The Integration license is the default choice, but not the only one. Here are the realistic options for the user an integration logs in as:

Salesforce Integration licenseFull user license with API Only UserShared admin or personal login
What it isAPI-only license with the Minimum Access - API Only Integrations profile and the API Integration permission set licenseA regular license (for example a Sales Cloud or Platform seat) on a custom profile with the API Only User permissionAn existing person’s account, or one System Administrator user reused by several tools
UI accessNone, and it can’t be switched onNone if API Only User is set; it is your setting to keepFull
What it can accessWhat your permission sets grant, within the API Integration permission set licenseWhat that license type allows, granted by profile and permission setsUsually everything
CostA limited number included in Enterprise, Unlimited, Performance and Developer; add-on licenses through your account executivePrice of a full seat of that license typeNo new license, paid for in risk
Best forMost server-to-server integrationsConnectors that don’t support the Integration license, or need permissions it can’t holdNothing in production
Watch out forSome managed package permission sets and permission set licenses can’t be assignedEasy to over-grant; costs a full seat per integrationBreaks when the person leaves; no traceability; one leaked token exposes the org

Salesforce doesn’t publish a public list price for add-on Integration licenses, so get a quote from your account executive. Compare it with what each extra integration would cost you as a full seat, and with the cost of an incident on a shared admin user.

How the pieces fit together

An integration user is never set up alone. The external system authenticates through an OAuth app, the token acts as the integration user, and the user’s license, profile and permission sets decide what each API call may touch.

One integration, one app, one user External system for example your ERP holds client ID and secret in a vault External Client App client credentials flow run-as: ERP integration user narrow scopes, one run-as user ERP integration user License: Salesforce Integration Profile: Minimum Access - API Only Integrations (clone) Login IP ranges: ERP only PSL: Salesforce API Integration Permission set: ERP Integration No UI access, ever What it can touch Account: read, edit Order: create, read, edit Product: read Monitoring Login History shows every login of this user; API Total Usage event logs show each call, its app and user token runs as
The app decides who may get a token, the user decides what the token can do, and the logs tie every call back to one system.

How to set up a Salesforce integration user, step by step

Start in a sandbox: Salesforce’s own admin guidance recommends configuring the API-only profile there before production. The steps run from inventory to monitoring, because the user is only as safe as the access you can account for. Salesforce Help has the current clicks, since menu labels move between releases.

  1. List your integrationsEvery system that calls Salesforce today, which user it logs in as, and what it reads and writes. Shared admin logins and “integration@” users with System Administrator are the first to replace.
  2. Check your licensesSetup, Company Information: count available Salesforce Integration user licenses and Salesforce API Integration permission set licenses. If you have more integrations than licenses, decide which get one first, and ask your account executive about add-ons.
  3. Get the vendor’s requirementsAsk each vendor which objects, fields and permissions their connector needs, whether it supports the Integration license, which OAuth flow it uses, and its published IP ranges. Many document this in their setup guide.
  4. Clone the profile per integrationMake a copy of Minimum Access - API Only Integrations for each external application, check it carries no extra permissions, and set its Login IP Ranges to the vendor’s ranges. Salesforce’s admin blog recommends exactly this, so even a stolen token can’t be used from elsewhere.
  5. Create the userSetup, Users, New User. Pick the Salesforce Integration user license and your cloned profile. Name it after the system (“ERP Integration”), and use a team mailbox you control as the email, because the account still has to be verified. After verification, Salesforce shows that access is restricted for API-only users, which is what you want.
  6. Create a permission set for that integrationChoose Salesforce API Integration as its license, then grant only the object, field and system permissions from step 3. Assign it to the user. Use a permission set group if several integrations share a base and differ in a few permissions.
  7. Create the OAuth appCreate an External Client App with OAuth enabled, the narrowest scopes that work, and the flow the integration uses. For client credentials, enable the flow and set your integration user as the run-as user; Salesforce notes that Permitted Users policies don’t apply to this execution user, so its own permissions are the real limit. For flows such as JWT bearer, set Permitted Users to admin-approved and pre-authorize only the integration user’s profile or permission set. Store the secret in a secrets manager.
  8. Test with the minimumRun every real scenario: create, update, delete if allowed, bulk loads, error cases. When something fails with an access error, add that one permission, not a whole bundle. Expect a little trial and error.
  9. Deploy and re-checkMove the profile, permission sets and app to production, then compare the production profile against what you tested; Salesforce’s admin blog warns that permissions can sneak back in during deployment. Keep the old access model for a month or two before deleting it, in case you need to roll back.
  10. Switch on monitoringNote the user in your runbook with its owner, vendor contact and secret rotation date, and set up the checks in the monitoring section below.

Permission mapping: which integration gets what

Least privilege only works if you write the permissions down per integration. Use this as a starting template, then cut it to what your vendor documents. The rows are typical examples, not vendor requirements.

IntegrationObjects and accessSystem permissionsLeave out
ERP or accounting (orders, invoices)Account read and edit; Order, Order Product create, read, edit; Product and Price Book readAPI Enabled (from the profile)Opportunity edit unless the ERP owns it; Lead; Case
Marketing automationLead and Contact create, read, edit; Campaign and Campaign Member create, read, editUsually none beyond API accessOpportunity amounts, financial fields, Case
Support desk or ticketingAccount and Contact read; Case create, read, edit on its own record typeNoneLead, Opportunity, Contract
Phone system or meeting toolTask and Event create, read; Lead, Contact, Account readNoneEdit on Lead, Contact or Account
E-signature or document toolOpportunity and Quote read; Files createNoneDelete anywhere
Data warehouse or BI (one-way out)Read on the objects it extracts; field-level read only on fields it needsView All on those objects only, if sharing would hide recordsAny create, edit or delete; View All Data
Data migration or bulk loader (temporary)Create and edit on target objects for the load windowBulk API usage as neededKeep it active after the migration

Three permissions deserve a second look in any integration permission set: View All Data, Modify All Data and Customize Application. A vendor that asks for them usually means “we didn’t test with less.” Push back, test with object-level access, and grant the broad permission only if the connector truly fails without it.

Remember field-level security too: an integration that only needs an email and a status shouldn’t read salary or credit-limit fields.

Record access matters as much as object access. The integration user is still subject to sharing rules and organization-wide defaults. If an ERP must update every account, give it View All or Modify All on Account only, rather than a role at the top of the hierarchy or org-wide View All Data.

Built by Gilzor

Results we’ve shipped

70+products launched
98%delivered on time
85%clients come back
Art Scherbakov, Co-FounderAndrew Laminsky, CTOYuri Rudenya, Head of Mobile Development at GilzorAlena Timofeeva, Product Marketing Lead

Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.

See how we’d approach yours

Authentication: External Client Apps, OAuth flows and MFA

Salesforce Help says integrations on a REST-based API should authenticate through an external client app and an OAuth 2.0 flow. SOAP-based integrations, including Bulk API, use the SOAP login() call. Two 2026 changes shape that choice:

  • New connected apps are restricted. According to Salesforce’s developer documentation, connected app creation is restricted as of Spring ’26. Existing connected apps keep working, but Salesforce recommends External Client Apps for new integrations, and re-enabling connected app creation requires a request to Salesforce Support.
  • Legacy password logins are being phased out. Salesforce’s Spring ’26 architect guidance says External Client Apps support only modern OAuth flows (no username-password flow). It also says SOAP login() is disabled by default in new orgs, and the call in API versions 31.0 through 64.0 is no longer supported from Summer ’27. Plan any SOAP-login integration’s move to OAuth now.

Which flow fits the integration user depends on who runs the integration:

  • How it works: the system posts the app’s client ID and secret to the token endpoint and gets a token that acts as the run-as user you set on the app. No refresh token; it simply asks again.
  • Good fit: your own middleware or a server that always runs as the same integration user and can keep a secret safe.
  • Lock it down: one app per integration, the integration user as the only run-as user, secret in a vault, rotation on a schedule.

MFA rules for API logins

Salesforce requires MFA for direct UI logins by internal users, but Salesforce Help says it doesn’t require MFA for integration login types via the API. You can add a second challenge with the Multi-Factor Authentication for API Logins permission, but most server-to-server flows can’t answer one, so it rarely fits a true integration user.

Two consequences. First, the API-only license is what keeps an integration user out of the MFA problem: it never logs in to the UI, so it never meets the UI MFA prompt. Second, because there is no second factor, your controls are the OAuth app, login IP ranges, short-lived tokens and monitoring.

Note also that the old Waive Multi-Factor Authentication for Exempt Users permission no longer exempts users automatically once MFA is enforced in your org; restoring that exemption for valid cases goes through Salesforce Customer Support.

Monitoring integration users

A dedicated user per integration makes monitoring easy, because every log line already says which system it was.

  • Login History. In Setup, Login History shows up to 20,000 logins from the past six months, with download for more. Filter or build a list view on your integration users and watch for logins from unexpected IPs, failed attempts and sudden changes in volume.
  • API Total Usage event logs. The API Total Usage event type records REST, SOAP and Bulk API requests with the user, the connected app and whether the call counted against your API limit. According to Salesforce, every org gets the past 24 hours of it at no extra cost; if you license Event Monitoring (on its own or as part of Shield), you get 30 days, extendable up to a year. It is the quickest way to see which integration is eating your daily API allocation; without Event Monitoring, download it daily if you want history.
  • Setup Audit Trail. Watch for changes to integration profiles, permission sets and OAuth apps. A permission added “just to test” is how least privilege erodes.
  • Data checks. Report on records created or modified by each integration user per day. A spike usually means a loop or a bad batch, not real growth.

Review every integration user at least twice a year: is the integration still in use, does its owner still work here, are its permissions still the minimum, and when was its secret last rotated. Deactivate users of retired tools; they are standing access nobody watches.

Pitfalls and how to fix them

ProblemWhat happensFix
One user for every integrationEach tool gets the union of all permissions, and logs can’t tell them apartOne user, one permission set and one OAuth app per integration
Vendor asks for System AdministratorThe connector works, and so would an attacker holding its tokenTest with object-level permissions in a sandbox; most connectors work without admin rights
Permission set won’t assignAn error says the user lacks the required licenseCreate the permission set with the Salesforce API Integration license, or check whether the package supports Integration-licensed users
Integration still on a person’s loginIt stops when they leave, reset a password or lose admin rightsMove it to a dedicated integration user and re-authorize the connector
Profile permissions creep inProduction ends up with access the sandbox never hadCompare the profile after every deployment; grant access only through permission sets
Old SOAP login() or password flowThe integration breaks when legacy logins are switched offMove to an External Client App with client credentials or JWT bearer
No IP restrictionA leaked token works from anywhereSet login IP ranges on the cloned profile to the vendor’s or your servers’ ranges
Sync loopsTwo systems keep updating the same record back and forthSkip changes made by the integration user in triggers, flows and change events

The last row is a bonus of dedicated users: because each integration has its own user, flows and triggers can tell “changed by the ERP” from “changed by a person” and skip echo updates. The Salesforce integration patterns guide covers loop-safe designs in more depth.

When the integration itself needs building

Setting up the user is an afternoon. The integration behind it is the bigger job, and that is where most of the cost sits.

Building your own connection on the REST, Bulk or Pub/Sub APIs? Our Salesforce API integration guide walks through API choice, limits, error handling and the server-to-server setup. If several systems need to feed Salesforce, the Salesforce integration guide compares native connectors, iPaaS (integration platform as a service) tools and custom builds, and teams on MuleSoft can read the Salesforce MuleSoft integration guide.

$2–10kSimple one-way custom integration
$10–40kTypical custom two-way sync with a CRM
15–25%Of the build cost per year to keep it running

Add-on Integration user licenses are a separate, usually small line on top of these figures: get the quote from your Salesforce account executive. The build ranges themselves, and what moves a project within them, are in our API integration cost guide.

Integration user checklist

Go through it once per integration user, not once for the whole org: a single shared admin login can hide behind an otherwise good score.

Salesforce integration user readiness

FAQ

What is a Salesforce integration user?
It is a Salesforce user created only for a system-to-system connection, such as an ERP, marketing tool or data warehouse. The external system authenticates as this user, and everything it does in Salesforce runs with that user’s permissions and is logged under its name. Salesforce recommends one integration user per integration, following the principle of least privilege.
Is the Salesforce Integration user license free?
Up to a point. According to Salesforce Help, orgs on supported editions (Enterprise, Unlimited, Performance and Developer) are granted a limited number of Salesforce Integration user licenses by default. If you need more, Salesforce says to contact your account executive about add-on licenses. You can see how many you have on the Company Information page in Setup.
What is the Minimum Access - API Only Integrations profile?
It is the profile that comes with the Salesforce Integration user license. It enables API access and restricts the user to the API, and those two settings can’t be turned off, even on a clone of the profile. It replaced the older Salesforce API Only System Integrations profile in Spring ’24, which isn’t available in newly provisioned orgs. Salesforce recommends granting object and field access through permission sets rather than the profile.
Can a Salesforce integration user log in to the UI?
No. Users with the Salesforce Integration user license and the API-only profile are not authorized to access Salesforce data or features through any user interface. They can only connect through the REST, SOAP or Bulk APIs. If a vendor’s setup requires an admin to log in and click through screens as the connecting user, that connector may need a full license instead.
Do Salesforce integration users need MFA?
Not for API logins. Salesforce Help says it doesn’t require multi-factor authentication for integration login types via the API, and you can add a second challenge with the Multi-Factor Authentication for API Logins permission if you want it. Since there is no MFA by default, protect the user with login IP ranges, a dedicated External Client App with narrow scopes, secret rotation and monitoring.
How many integration users should I have?
One per integration, and ideally one per calling system or use case. Salesforce’s guidance is that separate users restrict each integration to its own subset of data, make every transaction traceable to one system, and limit the damage if one user or integration is compromised. If you run out of included licenses, buying more is usually cheaper than the risk of sharing one powerful user.

Where Gilzor fits

Cleaning up integration users often turns up integrations that need rebuilding, not just new credentials. Gilzor, a software development company with engineers in Poland and Cyprus and not a Salesforce reseller, can audit what connects to your org, move each system to a least-privilege integration user and External Client App, and build or rebuild the integrations behind them with support after launch. How that work is scoped is on our Salesforce integration services page.

No sales pitch

Get a straight answer for your project

Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Next, a few optional questions so the first call is useful. We use your details only to reply to your request. Privacy Policy

Andrew Laminsky
Written byAndrew Laminsky

CTO of Gilzor. Responsible for architecture and the engineering standards our teams work by.

LinkedIn →

Gilzor · Web Development partner

Need a team for your web product?

95%referred by business partners
70+successful launches
85%repeat business
98%delivered on time

The team behind them

Art Scherbakov
Art ScherbakovCo-Founder
Andrew Laminsky
Andrew LaminskyCTOLinkedIn
Yuri Rudenya
Yuri RudenyaHead of Mobile Development at GilzorLinkedIn
Alena Timofeeva
Alena TimofeevaProduct Marketing LeadLinkedIn
Tell us what you’re buildingOptions, a rough cost and timeline for your project. No commitment.

More insights