Overview
Setup guide
Customization
Troubleshooting
Overview
Key capabilities
For Account Executives & CSMs
- See engagement for any Contact or Lead. View the communities they’ve joined and how active they are.
- Analyze engagement by Account. Aggregate activity across every associated Contact, and report on it by deal value.
For Community Managers
- Prove the community’s impact. Compare deal performance across engagement levels to show how community drives revenue.
How it works
The integration consists of two parts: a Salesforce Managed Package installed in your Salesforce org, and a connection configured in the Tightknit Admin Studio. Once the integration is enabled, Tightknit pushes community and member profile data to Salesforce, populating custom Tightknit Community and Community Member records. It also begins a periodic sync of all new community activity, creating Community Activity records in Salesforce.- Records are pushed using the Bulk API 2.0.
- Activity syncs run every 5 minutes, batching all new activity within that interval.
- Members are linked to Contacts by email matching. You can manually override any incorrect links.
- An initial backfill sync imports your existing historical data when you first enable the integration.
Data model
The managed package includes three custom objects in a simple parent-child hierarchy, plus a configurable lookup that links each member to a standard Salesforce Contact:Community__c appears as tightknit__Community__c in reports, list views, and SOQL.Setup
Complete these steps once, in order, to install the managed package, connect your Salesforce org to Tightknit, and start syncing community data.Before you begin
Plan who will do the setup, and how they will connect. Completing the connection requires a real, interactive Salesforce login, which determines who can do it and which configurations are supported:- The user setting up the connection within the Tightknit Studio must be able to log into Salesforce using the integration user’s real credentials. Salesforce’s “Login As” feature does not work for this. OAuth authorization is blocked inside an impersonation session and fails with Insufficient Privileges.
- The integration user needs a UI-login-capable license. The free Salesforce Integration license is API-Only (no UI login) and cannot complete the connection. Use a Salesforce Platform license or a standard Sales/Service Cloud seat, kept least-privilege with the Tightknit permission sets.
- Connect a production org, not a sandbox. Sandbox orgs are not supported.
Install the managed package
- Installation Link
- Salesforce CLI

https://<domain>.my.salesforce.com/packaging/installPackage.apexp?p0=04tdM000000Xu6fQACPrepare Salesforce
- Integration user — a dedicated Salesforce user account that Tightknit signs in with to sync data, instead of using a real person’s account. Think of it as a robot account.
- Permission set — a switchable bundle of permissions you assign to a user. Salesforce starts locked down, and permission sets are how you hand out exactly the access something needs. Tightknit ships ready-made ones, so you assign rather than build them.
- License — the type of seat a user occupies. It caps what that user can do, and a permission set can only switch on access the license already allows.
- External Client App — the pre-built component that lets Tightknit sign in to your org securely (the OAuth handshake).
Assign yourself the Tightknit Admin permission set
- In Salesforce, go to Setup. In the Quick Find search box, type
Permission Setsand click it. - Click Tightknit Admin in the list.
- Click Manage Assignments, then Add Assignment.
- Check the box next to your own user, click Next, then click Assign.
Open the Setup tab in the Tightknit app

Search for Tightknit in the App Launcher and select the Tightknit app. Setup lives on its Tightknit Setup tab.
Run the setup wizard to create your integration user
Grant the integration user Read access to Contacts
- Add a minimal extra permission set (recommended). Create a new permission set, give it Read on Contact, and assign it to the integration user alongside the Tightknit one. This is the cleanest option because it adds access without touching anything else, and survives package upgrades.
- Edit the integration user’s profile. Open the profile the integration user is on and turn on Read for the Contact object there.
Configure the External Client App OAuth policies
- Go to Setup, and in Quick Find open External Client App Manager.
- Click Tightknit Salesforce, open the Policies tab, and click Edit.
- Under OAuth Policies:
- Permitted Users: “Admin approved users are pre-authorized” (recommended), so only users you authorize can connect. You can choose “All users may self-authorize” instead, but it is less restrictive.
- Refresh Token Policy: “Refresh token is valid until revoked”, so the connection doesn’t expire on its own.
- IP Relaxation: “Relax IP restrictions” unless your security team requires otherwise.
- Click Manage Permission Sets and add Tightknit Integration User (plus Tightknit Admin if the integration user is also an admin). This authorizes the integration user under the “Admin approved” policy. Skipping it is the most common setup mistake and causes the connection to fail (
OAUTH_APP_ACCESS_DENIED, “user is not admin approved to access this app”, orOAUTH_APPROVAL_ERROR_GENERIC). - Save.
Assign the Tightknit Users permission set group to end users (optional)
Run the Health Check (optional but recommended)

The Health Check on the Tightknit Setup tab flags any Org-Wide Default sharing setting that would hide synced data from other users in the org. Each finding has a Fix in Setup button that opens the relevant Sharing Settings page in a new tab.
Grant Studio access
If your Salesforce administrator is not already a Studio user, you need to invite them and assign the Integrations Manager role so they can manage the Salesforce connection.Invite the user
Assign the Integrations Manager role
Connect in Tightknit
Open the Salesforce integration settings

Salesforce integration settings page with the Connect button.
Connect to Salesforce from the Tightknit App
Start the sync
After connecting your Salesforce org, the settings page presents a three-step timeline wizard: Connect, Configure, and Backfill. You can adjust every sync option before starting the sync for the first time.Connect
Configure sync settings
- Create Contacts — create a new Salesforce Contact for any community member that cannot be matched by email.
- Activity Metadata — include additional metadata fields on synced Activity records.
- Matching field — the Contact field used to match community members (default: email).
- Sync interval — how frequently incremental syncs run (for example, every 5 minutes).
Review and start the sync
Manage the integration
Monitor sync history
The Sync History tab shows a log of every sync job (backfill and incremental) with explicit counts of succeeded and failed records. Expand any row to see a summary of that sync run. Investigating failed sync jobs. When a sync job has failures, the expanded row shows an Investigate button. Clicking it opens a detail page with:- A summary of the sync job (status, timing, record counts).
- A breakdown of the underlying Salesforce Bulk API jobs, showing per-object totals for processed, succeeded, and failed records.
Disconnect
Disconnecting requires two separate actions in the Studio: one to tear down the integration connection, and one to revoke the underlying Salesforce OAuth account.Disconnect the integration connection

Overflow menu next to the Connection heading: select Disconnect.
Disconnect the Salesforce account

Overflow menu on the connection widget: select Disconnect account.
Refresh the page
Additional customization
LWC components
The managed package includes sample page layouts and custom Lightning Web Components that you can add to your Salesforce pages using Lightning App Builder. We recommend exploring the following components:Component previews
Select a component to see it in action. Click any image to view it at full size.- Account Community Activity Summary
- Activity Info
- Community Activity Summary
- Community Profile
- Contact Member Activity Log
- Member Activity Log

Community activity for contacts associated with an Account, with per-contact activity counts.
Permission sets
The Tightknit package ships three permission sets, each aimed at a different kind of user. Each bundles the full access that user needs, so you don’t have to assign individual permissions. To assign any of them: go to Setup → Permission Sets, click the set, click Manage Assignments → Add Assignment, pick the users, and click Assign. Here’s who gets which one:Permission set group
The package also ships a Tightknit Users permission set group. A permission set group bundles permission sets into a single assignable unit — you assign the group to a user and they receive the combined access of every set inside it. Tightknit Users currently contains Tightknit Read Only, and it is the recommended way to grant end-user access. Assign the group instead of the underlying permission set: when future versions add new end-user capabilities to the group, everyone already assigned picks them up automatically — no re-assignment needed.Building your own integration user permission set (advanced)
ApiEnabled— the OAuth token can’t make API calls without it. Required even on profiles that already have API access, so the integration user works on restricted profiles like Minimum Access - Salesforce or the Salesforce Integration license.
Contact: Read — the sync queries Contacts by email to link Tightknit members to existing CRM Contacts, and theMember__c.Contact__clookup field needs the target object to be readable in the user’s schema.Contact: Create — also required if you enable the Create Contacts option in Start the sync. Without that setting on, Read alone is sufficient.
Community__c, Member__c, and Activity__c, grant: Create, Read, Edit, Delete, View All Records, and Modify All Records.
Standard CRUD lets the sync upsert records. Modify All Records is required because Bulk V2 upserts return INSUFFICIENT_ACCESS_OR_READONLY in orgs with Private OWDs or when record ownership has been reassigned away from the integration user. It is the easiest grant to overlook and the most common cause of sync failures on a hand-rolled permset.
Field-level security on the Tightknit custom objects
Grant Read + Edit on every field the sync writes across the three Tightknit objects.
The cleanest approach is to grant Read + Edit on all custom fields on Community__c, Member__c, and Activity__c. That keeps your permset correct across package upgrades without per-version edits.
Troubleshooting
The Tightknit app doesn't appear in the App Launcher
The Tightknit app doesn't appear in the App Launcher
Member sync fails with 'Field name not found: tightknit__Contact__c'
Member sync fails with 'Field name not found: tightknit__Contact__c'
Member__c.Contact__c lookup is unresolvable. The Tightknit permission set cannot grant access to standard objects (a Salesforce platform limitation), so this must be granted separately. Grant the integration user Read on Contact — see Give the integration user Read access to Contacts. Add Create as well if you enable Create Contacts.The connection test reports missing object or field access
The connection test reports missing object or field access
Member__c.Contact__c.Object describes fail even with the permission set assigned
Object describes fail even with the permission set assigned
A field or object looks accessible in Setup, but the sync still fails on it
A field or object looks accessible in Setup, but the sync still fails on it
Connecting in Studio fails with 'Something went wrong' / 'We couldn't complete the connection'
Connecting in Studio fails with 'Something went wrong' / 'We couldn't complete the connection'
OAUTH_APP_ACCESS_DENIED(“user is not admin approved to access this app”). Your org requires admin approval for the Tightknit Salesforce External Client App, and the user completing the connection isn’t authorized for it. Fix it in Setup → External Client App Manager → Tightknit Salesforce → Policies → OAuth Policies → Permitted Users: either set “All users may self-authorize”, or keep “Admin approved users are pre-authorized” and click Manage Permission Sets to add a permission set the connecting user holds (for example Tightknit Integration User or Tightknit Admin). See Configure the External Client App OAuth Policies, then retry the connection in Studio. The relatedOAUTH_APPROVAL_ERROR_GENERICerror has the same cause and fix.- Connecting a sandbox org. Sandbox orgs aren’t supported and fail the OAuth the same way, so connect a production org instead. See Known issues.
- The integration user can’t log in (Salesforce Integration / API-Only license). If you connect as a user on the Salesforce Integration license or API Only profile, the interactive OAuth login is blocked and Login History shows a login failure. Connect as a UI-login-capable user instead (see the license note in Run the setup wizard).
The backfill shows 'Failed', or some records didn't sync
The backfill shows 'Failed', or some records didn't sync
Activities fail with 'Foreign key external ID … not found'
Activities fail with 'Foreign key external ID … not found'
I'm not seeing any records in the Tightknit object list views, or no data shows up in the components
I'm not seeing any records in the Tightknit object list views, or no data shows up in the components
Synced records aren't visible to other users in Salesforce
Synced records aren't visible to other users in Salesforce
Reference
Known issues
- Salesforce sandbox orgs are not supported. You can install the managed package in a sandbox and explore the Lightning Web Components (LWCs) by populating Community, Member, and Activity records manually. However, connecting a sandbox org to Tightknit is not supported yet (this is a work-in-progress feature). To run the full integration, connect a production org instead.
- Salesforce configuration is shown per Studio user, not tenant-wide. The Studio currently scopes the Salesforce integration settings to the Studio user who configured them, instead of sharing them across the tenant. Other Studio admins on the same tenant cannot see or collaborate on the same connection. We’re working on making this configuration tenant-wide.
Planned features
- Pre-built report templates
Create Memberquick action button on Contact detail page- Support for Leads
- Support for Parent Accounts
- More sync interval options
- Custom configuration for linking Tightknit Members to Contacts (beyond email matching)






