Skip to main content
The Qwoty - Salesforce integration provides a seamless connection between your Salesforce org and Qwoty. With this integration, you can embed Qwoty’s interface directly inside Salesforce and manage quotes, without leaving your CRM.

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:
  1. You must have a valid Salesforce account with permission to install packages (System Administrator profile recommended).
  2. You must have access to your Qwoty account integration settings.
  3. Your Salesforce edition must support Named Credentials and External Client Apps (available on most Enterprise and above editions).

1. Install the Qwoty package

  1. Connect to Qwoty app
  2. Go to SettingsDeveloperIntegration
  3. On the Salesforce card, click Connect
  4. 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.
  5. You’ll be redirected to the Salesforce package installation page. Choose Install for All Users (recommended) and click Install
  6. 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.
  1. Back in the same Install the Salesforce Integration dialog, under Step 2 - Connect your org, click Connect my Salesforce org
  2. Log in to Salesforce and authorize Qwoty to access your data
  3. 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

  1. Open any Opportunity record in Salesforce
  2. Click the gear iconEdit Page
  3. In the Lightning App Builder, find Qwoty in the list of available components
  4. Drag and drop the Qwoty component to the desired location (for example the right sidebar)
  5. Click Save, then Activate if prompted
The Qwoty component will now appear on Opportunity records for users who have access to this page.

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 the Qwoty namespace. It includes:
ComponentTypePurpose
qwotyCardViewLightning Web ComponentRenders the quote card on the Opportunity page
QwotyCardViewControllerApex ClassHandles the signed callout to Qwoty’s API
Qwoty_Config__cCustom Setting (Hierarchy)Stores the org’s secret and app URL
Qwoty_APINamed CredentialDefines the callout endpoint (https://qwoty.app)
QwotyExternal Client AppUsed by Nango to perform the Salesforce OAuth flow
Qwoty_App / Qwoty_CDNCSP Trusted SitesAllow iframes and images from qwoty.app and qwoty.io

Troubleshooting

SymptomLikely cause
The callout couldn't access the endpointThe Apex callout isn’t using the namespaced credential (callout:Qwoty__Qwoty_API)
Config not foundQwoty_Config__c has no record, or the query targets the wrong custom setting type
API error: 500 on the componentCheck 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 connectionThe package wasn’t installed yet, or was installed after the OAuth attempt. Install must happen first
”Ce contenu est bloqué” / blocked iframeCSP Trusted Site is inactive — check Setup → CSP Trusted Sites