Salesforce
Connect your Salesforce CRM to Floqer to import records into lists, look up and enrich records mid-workflow, and write results back — all over a secure OAuth 2.0 connection.
Two ways to connect
| Method | Best for | How it authenticates |
|---|---|---|
| Salesforce login | Getting started quickly — connect as yourself in a few clicks | OAuth 2.0 authorization flow: you sign in to Salesforce and approve access |
| API-only integration user | Orgs that want a dedicated, tightly scoped connection not tied to a person — see Set up an integration user | OAuth 2.0 client credentials: server-to-server, no interactive login |
Both production and sandbox orgs are supported. Either way, Floqer's access is always bounded by the object and field permissions of the connecting Salesforce user — see Permissions and scope control. Requirements — supported editions, user licenses, and permissions — are covered in the FAQs.
Connect with your Salesforce login
- Log in to app.floqer.com and go to Connections → Salesforce.
- If you're connecting a Salesforce sandbox, check Use Sandbox Environment.
- Click Connect to Salesforce. You'll be redirected to the Salesforce login page.
- Sign in with your Salesforce credentials, completing any verification your org requires (SSO, MFA, or a security token).
- On the Salesforce authorization screen, review the requested access — the four OAuth scopes Floqer asks for — and click Allow. You'll be redirected back to Floqer.
- Verify the connection by searching for Salesforce in the connected apps section — it should show as connected.
- Open the connection to finish setting it up:
- Toggle Enable for Org to turn the integration on for your workspace.
- Optionally toggle Set as Default if this should be your default Salesforce connection.
- Click Save Changes.
Careful
Make sure the Floqer connected app's refresh token policy in Salesforce is set to Refresh token is valid until revoked, so the connection doesn't expire after authorization.
Connect as an API-only integration user
With the consumer key and secret from your connected app — created by a Salesforce admin in Set up an integration user:
- Log in to app.floqer.com and go to Connections → Salesforce.
- If you're connecting a Salesforce sandbox, check Use Sandbox Environment.
- Click Integration User.
- Fill in the credentials from your connected app:
- Client ID — the consumer key
- Client Secret — the consumer secret
- Instance URL — your org's URL, e.g.
https://yourorg.my.salesforce.com
- Toggle Enable for Org, then click Connect to Salesforce.
Floqer authenticates server-to-server as the integration user — no password and no interactive login.
Set up an integration user
For a connection that isn't tied to a person, a Salesforce admin can create a dedicated API-only user and connected app, and connect Floqer through the OAuth 2.0 client credentials flow:
- A hard permission boundary. Floqer operates as this user and can never exceed its profile and permission sets. Exposing only the objects and fields in scope makes the boundary enforceable, rather than a configuration convention — see Permissions and scope control.
- No interactive login. The user is API-only — it cannot log in to the Salesforce UI at all — and the client credentials flow authenticates server-to-server without anyone signing in.
- Not tied to a person. The connection runs as a dedicated user on the Salesforce Integration license rather than as one of your team members.
The setup has two parts: create the API-only user (steps 1–3), then create the connected app Floqer authenticates through (steps 4–6). You'll need to be logged in to Salesforce as a System Administrator. Once done, connect in Floqer with the app's credentials — see Connect as an API-only integration user.
Step 1 — Create the user
-
Go to Setup → Users → Users → New User.
-
Fill in the user details:
Field Value First / last name e.g. Floqer IntegrationEmail A real or alias email you control, e.g. sfdc-floqer@yourcompany.comUsername Must be globally unique, e.g. floqer-integration@yourcompany.com.prodUser License Salesforce Integration Profile Salesforce API Only System Integrations -
Click Save. Salesforce will display a notice that this is an API-only account that cannot log in via the UI — that's expected.
Careful
The profile must be exactly Salesforce API Only System Integrations. Selecting the wrong profile here is the most common setup mistake.
Step 2 — Assign the permission set license
Before the user can do anything useful, it needs the Salesforce API Integration permission set license:
- Open the user record: Setup → Users → Users → [your new user].
- Under Permission Set License Assignments, click Edit Assignments.
- Enable Salesforce API Integration and click Save.
Step 3 — Create and assign a permission set
The API-only profile has zero object permissions by default, so a custom permission set is what actually grants Floqer access to the objects it will read and write:
- Go to Setup → Permission Sets → New.
- Name it, e.g.
Floqer Integration Access. - Under Permission Set License, select Salesforce API Integration.
- Add the required object permissions — read on the objects Floqer will import (Leads, Contacts, Accounts, and so on) and create/edit on the objects your workflows will write to.
- Save the permission set.
- Click Manage Assignments → Add Assignment, select your integration user, and click Assign.
Note
This permission set is the integration's scope. Floqer can only ever read and write what it grants — anything outside it is inaccessible regardless of how a workflow is configured.
Step 4 — Create a connected app
- Go to Setup → App Manager → New Connected App.
- Fill in the basic info:
- Connected App Name:
Floqer - Contact Email: your admin email
- Connected App Name:
- Under API (Enable OAuth Settings):
- Check Enable OAuth Settings.
- Callback URL:
https://login.salesforce.com/services/oauth2/callback - Add the OAuth scopes: Manage user data via APIs (
api) and Perform requests at any time (refresh_token,offline_access). - Check Enable Client Credentials Flow.
- Click Save. The app can take up to 10 minutes to activate.
Note
Org uses External Client Apps? Salesforce is replacing connected apps with External Client Apps. If that's what your org creates, set up an External Client App with the same OAuth settings — you'll get a consumer key and secret the same way.
Step 5 — Set the "Run As" user
This ties your integration user to the connected app for the client credentials flow:
- Go to Setup → App Manager, find the Floqer app, and choose Manage from its row dropdown.
- Click Edit Policies.
- Under Client Credentials Flow, set Run As to your
Floqer Integrationuser. - Under Permitted Users, select Admin approved users are pre-authorized.
- Click Save.
Step 6 — Get the consumer key and secret
- From the connected app's detail page, click Manage Consumer Details (Salesforce may ask you to verify with MFA).
- Copy the Consumer Key (client ID) and Consumer Secret (client secret), and store them securely.
Salesforce Actions
The integration is two-way, with five actions, each configured per workflow:
| Action | Salesforce API call |
|---|---|
| Import records into a Floqer list | GET /query (SOQL), paginated |
| Look up records mid-workflow | GET /query (SOQL) |
| Create a record | POST /sobjects/{Object} |
| Update a record | PATCH /sobjects/{Object}/{Id} |
| Upsert by external ID | PATCH /sobjects/{Object}/{ExternalIdField}/{value} |
Reads and writes are configured independently, so you can run the integration read-only, write-only, or both — and a read-only setup is enforceable by granting the connecting user read-only access.
Floqer's writes are limited to create, update, and upsert. It never deletes Salesforce records.
Alongside these, read-only metadata calls (/sobjects, /describe, /listviews) populate the setup UI so you can pick objects and fields from your live org.
Security and access
Note
Security at a glance: Floqer connects over OAuth 2.0, so your Salesforce password is never shared with Floqer. Access tokens refresh automatically, access is bounded by the connecting user's object and field permissions, and you can revoke it at any time.
OAuth scopes
Floqer's connected app requests four scopes:
| Scope | Salesforce label | Why Floqer needs it |
|---|---|---|
api | Manage user data via APIs | The working scope: read records via SOQL and create, update, and upsert records through the REST API. |
refresh_token, offline_access | Perform requests at any time | Lets scheduled syncs and workflow runs execute without a user re-authenticating each time. |
id, profile, email | Access the identity URL service | Read at connect time only, to identify which org and user the connection belongs to and to resolve your org's domain for API calls. |
openid | Access unique user identifiers | Provides the stable user identifier that ties the connection to a specific Salesforce user. |
Revoking access
You can cut Floqer's access at any time:
- In Salesforce: Setup → Connected Apps → OAuth Usage — revoke the Floqer connected app.
- In Floqer: disconnect the connection under Connections → Salesforce.
Permissions and scope control
Floqer operates entirely as the Salesforce user who authorizes the connection and inherits that user's permissions. That user needs:
- API Enabled (via profile or permission set)
- Read access on any object and field you want to import
- Create and Edit access on any object and field you want to write to
Nothing more: Floqer does not require System Administrator, Modify All Data, View All Data, or any Delete permission. Field-Level Security, sharing rules, and record-level access all apply normally.
The api scope grants no more than the authorizing user can already see and do, so that user's permissions are where scope is genuinely controlled. Access can be limited at two layers:
- Configuration layer. Floqer queries only the fields you select and writes only the fields you map. Unselected fields are never requested and never stored.
- Permission layer — the enforceable one. Connect with a dedicated integration user whose profile and permission sets expose only the objects and fields in scope — for example, read on
Account.Name,Account.Website, andContact.Email, and edit on the specific enrichment target fields. Anything outside that permission set is inaccessible to Floqer regardless of how a workflow is configured. See Set up an integration user.
Careful
The OAuth credential inherits the authorizing user's full reach. If a System Administrator authorizes the connection, the credential is capable of reading records Floqer will never actually query. This is inherent to Salesforce's OAuth model rather than specific to Floqer — and it's exactly why we recommend a scoped integration user, which collapses the gap between what Floqer accesses and what it could access.
FAQs
Which Salesforce editions are supported?
Your Salesforce organization must be on an edition that includes API access:
| Edition | API access |
|---|---|
| Enterprise | Included |
| Unlimited | Included |
| Performance | Included |
| Developer | Included (for testing and development) |
| Professional | Not included by default — requires the API Access add-on. Once purchased, the integration works normally. |
Which user licenses include API access?
Your Salesforce user needs a license that includes API access. All of these qualify:
| License | Notes |
|---|---|
| Salesforce | Full CRM access to all standard and custom objects — the most common license for CRM users |
| Salesforce Platform (formerly Force.com) | Custom objects and a limited set of standard objects — good for custom app users |
| Salesforce Platform Plus | Enhanced platform license with broader standard-object access |
What permissions does my Salesforce user need?
Every connecting user needs these two permissions:
- API Enabled — required to make any API calls.
- View Setup and Configuration — required to read the object and field metadata that populates Floqer's setup screens.
Beyond that, what you need depends on what your workflows do:
- Read-only workflows (imports and lookups) — read permission on the objects you'll query (Contacts, Accounts, Leads, Opportunities, and any custom objects), or the broader View All Data.
- Write operations (create, update, upsert) — create and edit permission on the objects and fields you'll write to, or the broader Modify All Data.
Note
Object-specific permissions are enough. Floqer never requires System Administrator, View All Data, or Modify All Data — granting access to just the objects and fields your workflows touch is the recommended setup.
To check your permissions:
- Go to Setup → Users → Users and click your name.
- Review your Profile and Permission Set Assignments.
- Confirm API Enabled and View Setup and Configuration are on, plus read (and, for writes, edit) access on the objects your workflows will use.
How is the integration built?
Floqer calls the Salesforce REST API (/services/data/v61.0/) directly, server-to-server over HTTPS, authenticated with OAuth 2.0 through a connected app.
- Nothing is installed in your org. The integration is not an AppExchange package — no Apex, Lightning components, flows, custom objects, or metadata are deployed.
- No middleware. No iPaaS, ETL vendor, or integration broker sits in the path. Traffic goes directly between Floqer's infrastructure and your Salesforce instance.
- Floqer initiates every connection. No Salesforce-initiated traffic occurs in either direction.
The only artifact on the Salesforce side is the connected app authorization itself, visible and revocable at any time under Setup → Connected Apps → OAuth Usage.
How does data get from Salesforce into Floqer?
- Floqer fetches your org's objects and fields so they appear as options in the setup screen. You pick the object and fields to import, plus any filters or a Salesforce List View.
- On each run — on demand or on schedule — Floqer issues a SOQL query over HTTPS for the selected fields only, paginating until complete.
- Returned records are normalized, stored in Floqer's managed cloud datastores keyed by the Salesforce record
Id, and loaded into your list or workflow table. - Workflow steps then operate on those rows — enrichment lookups, transformations, AI-generated fields.
How does data get from Floqer back into Salesforce?
- A workflow row reaches a Salesforce create, update, or upsert step.
- Floqer builds the payload from the fields you mapped in that step.
- The REST call is sent over HTTPS to your org.
- Salesforce's response — record ID, insert-vs-update outcome, record URL, or an error — is written back onto the workflow row so you can see the result.
When does Floqer sync, and how often?
Floqer initiates all traffic, either on demand when you run an import or workflow, or on a schedule you configure (default weekly). Scheduled syncs are incremental — they query only records created or modified since the last run — and can be paused or removed at any time.
Which objects and fields does Floqer read and write?
There is no fixed list. Floqer defines no schema of its own and requires no specific object or field: you select the objects and exact fields at configuration time, from your own org. The only field Floqer requires is the record Id. In practice:
- Read — the objects and fields selected for import or lookup, typically Lead, Contact, and Account.
- Write — only the fields explicitly mapped in a workflow's create, update, or upsert step, typically enrichment output written to a defined set of target fields.
Floqer reads no field you haven't selected and writes no field you haven't mapped. There is no background crawling, no full-org sync, no bulk export, and no process that reads objects outside a configured import or workflow step.
What data does Floqer store?
| Category | Typical items | Direction |
|---|---|---|
| CRM record identifiers | Record Id, external ID field values, owner, created and modified dates | Read |
| Business contact data | Name, job title, business email, business phone, LinkedIn URL | Read and write |
| Company / firmographic data | Account name, domain, website, industry, employee count, revenue, location | Read and write |
| Custom fields | Any __c field you select or map | Read and write |
| Enrichment and AI-generated output | Enriched firmographic or contact attributes, scores, classifications, generated text | Write |
| Integration credentials | OAuth access and refresh tokens, org instance URL, and the connecting user's identity (user ID, name, email, org ID) | Held by Floqer |
| Operational data | Job status, timestamps, API responses and error messages | Held by Floqer |
What can Floqer see regardless of configuration?
Two things:
- Your schema. To populate the setup screens, Floqer reads the list of objects in your org and the field names and types of any object you open in the configuration UI, including custom objects and fields. This is metadata only — names and types, never record contents.
- The User object, minimally. Floqer reads
IdandNamefrom the User object in two places: to display record-owner names alongside looked-up records, and to populate owner selection lists in the setup UI. No other User fields are read, and Floqer never writes to the User object. Beyond that, Floqer stores the name, email, user ID, and organization ID of the Salesforce user who authorized the connection, returned by Salesforce at connect time.
How long is data from Salesforce retained?
Records imported from Salesforce are retained for the duration of your engagement, for functional reasons: so workflows can operate on them, results remain available for review and export, and re-running or auditing a workflow produces consistent output. Data is stored in Floqer's managed cloud infrastructure and scoped to your organization.
Is our data used for anything beyond serving us?
No:
- Not used to build or resell a data pool. Floqer does not aggregate, sell, license, or otherwise commercialize customer records. Your data is not offered to other customers and does not form part of any Floqer-owned dataset or product.
- Not used to train models. Floqer does not train, fine-tune, or evaluate any model on customer data.
- Not used for benchmarking, analytics, or product development against your records.
How do we delete our data?
- You can delete individual lists, workflows, and connections yourself at any time from within the product.
- For full deletion, send a written request to privacy@floqer.com. Deletion covers records ingested from your systems, workflow data derived from them, uploaded files, and the credentials of connected integrations. It is completed within 30 days of the request, and Floqer provides written confirmation once done.
Have a question that isn't answered here? Contact Floqer support at hello@floqer.com.