Overview
The integration allows:- Embedding a dedicated Qwoty component on Salesforce Opportunity pages.
- Creating and managing quotes directly inside Salesforce.
- Secure, signed communication between your Salesforce org and Qwoty via a managed package.
Prerequisites
Before you connect Salesforce with Qwoty:- You must have a valid Salesforce account with permission to install packages (System Administrator profile recommended).
- You must have access to your Qwoty account integration settings.
- Your Salesforce edition must support Named Credentials and External Client Apps (available on most Enterprise and above editions).
1. Install the Qwoty package
- Connect to Qwoty app
- Go to Settings → Developer → Integration
- On the Salesforce card, click Connect
- In the Install the Salesforce Integration dialog, under Step 1 - Install the Qwoty package, choose Install on a production org or Install on a sandbox depending on your target environment
You must have System Administrator rights in the target org to install the package.
- You’ll be redirected to the Salesforce package installation page. Choose Install for All Users (recommended) and click Install
- Approve third-party access when prompted — this allows the package to communicate with
qwoty.app
Installing the package deploys the Qwoty Lightning component, Apex classes, a Named Credential, and the Salesforce External Client App required for authentication. None of these steps store any data yet — that happens during connection (step 3 below).
2. Connect your Salesforce org
Once the package is installed, return to Qwoty to finish the connection.- Back in the same Install the Salesforce Integration dialog, under Step 2 - Connect your org, click Connect my Salesforce org
- Log in to Salesforce and authorize Qwoty to access your data
- Select the account to link with Qwoty and follow the process to the end
3. Add the Qwoty component to the Opportunity layout
After connecting, add the Qwoty component to your Opportunity page so users can see and create quotes.Steps
- Open any Opportunity record in Salesforce
- Click the gear icon → Edit Page
- In the Lightning App Builder, find Qwoty in the list of available components
- Drag and drop the Qwoty component to the desired location (for example the right sidebar)
- Click Save, then Activate if prompted
Benefits
- Unified workflow: Sales teams can create and manage quotes directly from Salesforce without switching tools.
- Reduced manual work: No need for duplicate data entry across systems.
- Secure by design: All requests between Salesforce and Qwoty are signed and verified, and no credentials are stored in plain text.
Technical reference
This section is intended for developers maintaining the Salesforce package or troubleshooting an installation. It isn’t required reading for end users.
Architecture
The integration is distributed as a Second-Generation (2GP) managed package under theQwoty namespace. It includes:
| Component | Type | Purpose |
|---|---|---|
qwotyCardView | Lightning Web Component | Renders the quote card on the Opportunity page |
QwotyCardViewController | Apex Class | Handles the signed callout to Qwoty’s API |
Qwoty_Config__c | Custom Setting (Hierarchy) | Stores the org’s secret and app URL |
Qwoty_API | Named Credential | Defines the callout endpoint (https://qwoty.app) |
Qwoty | External Client App | Used by Nango to perform the Salesforce OAuth flow |
Qwoty_App / Qwoty_CDN | CSP Trusted Sites | Allow iframes and images from qwoty.app and qwoty.io |
Troubleshooting
| Symptom | Likely cause |
|---|---|
The callout couldn't access the endpoint | The Apex callout isn’t using the namespaced credential (callout:Qwoty__Qwoty_API) |
Config not found | Qwoty_Config__c has no record, or the query targets the wrong custom setting type |
API error: 500 on the component | Check the backend logs for /api/crm/cardView — usually a Supabase lookup returning 0 or multiple rows, or a secret mismatch |
OAUTH_EC_APP_NOT_FOUND during Nango connection | The package wasn’t installed yet, or was installed after the OAuth attempt. Install must happen first |
| ”Ce contenu est bloqué” / blocked iframe | CSP Trusted Site is inactive — check Setup → CSP Trusted Sites |

