Salesforce
QSign for Salesforce is a native Salesforce app (managed package — Lightning Web Components + Apex) that lets your team send a document for signature from an Opportunity or Quote record, track signing status, and get the signed PDF back on the record automatically. It’s built entirely on the QSign white-label API — no middleware, and QSign runs on its own infrastructure.
What you get
Section titled “What you get”- A “Send for signature with QSign” component on the Opportunity / Quote record page.
- Recipients pre-filled from the record’s Contact Roles (editable — set order and signing method: e-Signature, Aadhaar eSign, Approver, Reviewer).
- A signature-request record per send, with live status (
Sent → Partially Signed → Signed) and per-recipient signing links. - The fully-signed PDF stored back on the Opportunity/Quote as a Salesforce File.
- Sandbox mode — use a
qsk_test_key to demo and test with fully simulated signing (no emails, no quota usage).
How it works
Section titled “How it works”Opportunity / Quote └─ "Send for signature with QSign" (LWC) → Apex generates a short-lived public link to the file (ContentDistribution) → POST /document/recipients/create/ (base URL via Named Credential; X-Api-Key added by Apex) → a QSign Signature Request record is created └─ A scheduled job polls /document/app/sign/status/ and, when signed, downloads the signed PDF and attaches it to the record.The QSign callout uses a Salesforce Named Credential for the base URL and callout
allowlist. Your QSign API key is entered once via the QSign Setup tab, stored in a
protected custom setting, and injected by Apex as the X-Api-Key header — never stored
in code or metadata.
Install & configure
Section titled “Install & configure”The package is installable today; the public AppExchange listing is in progress. Until it’s listed, install from the package/source and follow the steps below.
- Deploy the package to your org (from AppExchange once listed, or via the package version / source).
- Add the QSign API key: open the QSign Setup tab (App Launcher → QSign Setup),
paste your key and click Save —
qsk_test_…for sandbox orqsk_live_…for production. Get a key from the Developer portal (API → keys). The key is stored in a protected custom setting (not browsable or exportable), injected as theX-Api-Keyheader, and never stored in source. (Source/unmanaged installs can alternatively set it via Setup → Custom Settings → QSign Config; in a managed install the setting is protected, so use the QSign Setup tab.) - Assign the
QSign Userpermission set to the users who will send documents. - Add the components to the Opportunity (and Quote) record page in the Lightning App Builder: Send for signature with QSign and QSign signature requests.
- Schedule status sync (one-time), e.g. every 15 minutes:
System.schedule('QSign Status Poll', '0 0,15,30,45 * * * ?', new QSignStatusPollScheduler());
Send a document
Section titled “Send a document”- Open an Opportunity that has a PDF attached and at least one Contact Role with an email.
- In Send for signature with QSign, pick the document, confirm the recipients (and order / signing method), and choose whether QSign emails the signers or you surface the signing links in Salesforce (headless).
- Click Send for signature. A signature-request record is created; status updates automatically and the signed PDF is attached to the record on completion.
- Signing methods follow the API — see Signing methods.
- Status & webhooks: the package syncs by polling by default; QSign also emits signed webhooks if you prefer event-driven updates.
- Security: the API key lives only in a protected custom setting (set via the QSign Setup tab); the document is shared to QSign via an unguessable, time-boxed link that is revoked after signing.
Need the raw API instead? Start with the Quickstart and the API reference.