Skip to content

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.

  • 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).
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.

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.

  1. Deploy the package to your org (from AppExchange once listed, or via the package version / source).
  2. Add the QSign API key: open the QSign Setup tab (App Launcher → QSign Setup), paste your key and click Saveqsk_test_… for sandbox or qsk_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 the X-Api-Key header, 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.)
  3. Assign the QSign User permission set to the users who will send documents.
  4. Add the components to the Opportunity (and Quote) record page in the Lightning App Builder: Send for signature with QSign and QSign signature requests.
  5. Schedule status sync (one-time), e.g. every 15 minutes:
    System.schedule('QSign Status Poll', '0 0,15,30,45 * * * ?', new QSignStatusPollScheduler());
  1. Open an Opportunity that has a PDF attached and at least one Contact Role with an email.
  2. 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).
  3. 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.