Skip to content

Open source · Apache-2.0 · Live

ScanForce Open

Open-source document processing for Salesforce. A native workspace that submits Salesforce Files to a provider you choose, tracks job state, supports human review, and can write extracted values back to linked records - without claiming that OCR runs inside Salesforce.

ScanForce Open workspace listing document processing jobs with queued, completed, failed, and review-required statuses

Authentic workspace screenshot from the public ScanForce Open repository. Processing still requires a configured /connect/v1 provider.

Problem and solution

Document bytes in Salesforce Files are not enough.

Teams often need invoice, purchase-order, or contract data on Salesforce records. Building that stack from scratch means file access checks, async job state, retries, review routing, result presentation, Flow entry points, and safe record updates - before any OCR model enters the picture.

ScanForce Open is the Salesforce-native processing workspace for that problem. It owns submission, durable jobs, review coordination, result display, and optional field mapping. Extraction itself runs in an external provider behind a small open HTTP protocol.

It is not the retired Scanforce managed package. ScanForce Open was rebuilt from scratch, shares no implementation with the predecessor, and has no in-place upgrade path from legacy packages. Retirement notice.

Features

What the shipped application actually does

Capabilities below match the public repository documentation. Roadmap ideas that are not implemented are not advertised here.

  • Submit from Files

    Upload PDFs and images, or select existing Salesforce Files the user is already allowed to see.

  • Async job states

    Track Queued, Processing, Completed, Review Required, Failed, Cancelled, and Timed Out on private job records.

  • Fields and line items

    Display compact extracted results as fields and tables once the provider returns a bounded payload.

  • Apply to records

    Preview extracted values and apply them to the linked Salesforce record through configurable field mappings.

  • Flow and Apex

    Five Flow actions plus an Apex API cover process, refresh, recover, apply mappings, and read extracted values.

  • Idempotency & recovery

    Duplicate submissions do not create duplicate provider work. A recovery scheduler sweeps interrupted jobs.

  • Bring your own provider

    One Named Credential points at DocSolved.ai or any HTTPS backend that implements /connect/v1.

  • Admin configuration

    External Credentials hold the API key. Permission sets gate users and administrators. No public file links.

Architecture

Salesforce Files → job → provider → review → record

Apex services and Queueables drive background work. LWC covers the workspace, job detail, record documents, and configuration. Flow and Apex are first-class entry points. Jobs are private. Named and External Credentials own the callout. The gateway is provider-neutral.

Architecture · Salesforce → provider → record
  1. 01

    Salesforce Files

    PDF, PNG, or JPEG up to 5 MiB. Upload new or select an existing ContentVersion the user can already see.

  2. 02

    ScanForce Open

    Workspace, record documents component, Flow actions, or Apex API - every entry point checks Use ScanForce Open.

  3. 03

    Processing job

    Private SfdcDcx_Processing_Job__c row: status, provider job id, compact result JSON, errors, review link.

  4. 04

    Named Credential

    callout:SfdcDcx_Provider. API key lives in an External Credential. Salesforce initiates every HTTPS request.

  5. 05

    Provider /connect/v1

    DocSolved.ai or any compatible custom backend. Extraction runs outside Salesforce; the protocol stays the same.

  6. 06

    Review & mapping

    Fields and line items in the UI. Optional field mappings write previewed values onto the linked Salesforce record.

User-mode auth
File and source-record access are checked as the submitting user before trusted processing starts.
Queueable + recovery
One Queueable item per transaction; a five-minute Recovery Scheduler sweeps interrupted work.
Idempotency
Duplicate submissions reuse provider work instead of creating parallel jobs for the same file version.
Provider-neutral
Salesforce code has one gateway and one state machine. Switching providers is configuration, not a rewrite.

OCR and extraction run in the configured provider, not inside Salesforce. Document bytes leave the org over HTTPS to that provider. This diagram matches the public architecture documentation for ScanForce Open; it is not a customer landscape.

User experience

Workspace, completed jobs, review, and setup

Screenshots are taken from the upstream documentation set - the same images administrators and developers see in the repository.

ScanForce Open workspace listing document processing jobs with queued, completed, failed, and review-required statuses

Workspace - job list across statuses

Completed ScanForce Open job showing extracted invoice fields and line items ready to review

Completed job - fields and line items

ScanForce Open job in Review Required state with extracted values awaiting human confirmation

Review Required - human checkpoint

ScanForce Open configuration page for Named Credential provider endpoint and External Credential API key

Configuration - provider and credentials

For administrators

Install, connect, assign, recover

There is no AppExchange install button and no officially distributed managed package on this page. Installation is from source with Salesforce CLI.

  1. 01

    Install from source

    Clone the repository, authenticate with Salesforce CLI, and run the install script against a Developer Edition, sandbox, scratch org, or Enterprise org.

  2. 02

    Configure the provider

    Open ScanForce Open → Configuration. Point the Named Credential at DocSolved.ai or your custom /connect endpoint, store the API key in the External Credential, and run Test connection.

  3. 03

    Assign access

    Assign the connector and admin permission sets. Users need Use ScanForce Open; configuration needs Administer ScanForce Open.

  4. 04

    Schedule recovery

    Enable the recovery sweep so interrupted Queueable work is re-picked on a five-minute cadence.

  5. 05

    Map fields (optional)

    Add SfdcDcx_Field_Mapping__mdt records for the result paths you want written onto source objects. No mappings ship by default.

  6. 06

    Add the record component

    Place the Record Documents Lightning component on Lightning record pages where users should process related Files.

For developers

Apex, Flow, metadata, and an open protocol

  • Apex API

    SfdcDcx_Api exposes process, refresh, recover, apply mappings, and value lookup for custom automation.

  • Five Flow actions

    The same operations are available as invocable actions so admins can wire document processing without Apex.

  • Custom metadata mappings

    Field mappings are metadata, not hard-coded paths, so orgs shape result-to-record writing without changing package code.

  • Provider protocol

    Three HTTPS endpoints under /connect/v1. A dependency-free reference provider and a conformance checker ship in the repo.

Implementation examples, the reference provider, and the conformance checker live in the repository: developer documentation (opens in a new tab), provider protocol (opens in a new tab), custom provider guide (opens in a new tab).

Bring your own provider

Provider independence is the product boundary

ScanForce Open talks to one configured Named Credential. Behind it you can use DocSolved.ai (opens in a new tab) as an optional hosted provider, or a custom HTTPS service that implements /connect/v1 (opens in a new tab). Switching providers is a configuration change - not a rewrite of the Salesforce application.

Arbitrary OCR APIs do not plug in directly. They need a protocol adapter that speaks the documented connect contract. A reference provider and conformance checker exist so you can validate that adapter before pointing a production org at it.

DocSolved.ai details live on docsolved.ai. Synairo.com only describes the optional integration path documented upstream (provider-docsolved.md (opens in a new tab)).

Security and reliability

Documented guarantees - and the boundary that matters

  • Salesforce access checks

    File and source-record visibility are checked in USER_MODE before trusted processing starts. Classes are with sharing.

  • Private jobs

    Processing jobs are a private custom object. Results stay on the job until a user or automation applies mapped fields.

  • Credentials in Salesforce

    Provider API keys live in External Credentials. Providers never receive Salesforce session credentials or public file links.

  • Validated, bounded responses

    Provider payloads are validated and size-bounded before they are stored as compact JSON on the job.

  • Bytes leave the org

    Submitted document bytes are sent to the configured provider over HTTPS. Provider security posture is not identical across backends - choose and review yours.

  • Human review

    When the provider signals Review Required, ScanForce Open surfaces that state and can open the provider review experience where supported.

Full model: security documentation (opens in a new tab).

Technical specifications

Verified project limits

The Salesforce application is free under Apache License 2.0. Document processing services may be paid separately.

File types
PDF, PNG, JPEG
File size
5 MiB per file
Submission size
25 files per submission
Providers per org
One Named Credential / provider endpoint per org
Processing window
Up to 15 remote attempts or 60 minutes, then Timed Out
Platform
Salesforce Lightning, Apex, Salesforce Files
Distribution
Source install with Salesforce CLI (not AppExchange on this page)
License
Apache License 2.0

Getting started

Clone, install, connect, process

Plan about fifteen minutes once you have a provider endpoint or DocSolved connector key. The application cannot process documents until a compatible provider is configured.

git clone https://github.com/michalTargiel91/scanforce-open.git
cd scanforce-open
sf org login web --alias my-org
bash scripts/install.sh --target-org my-org --provider docsolved
# or: --endpoint https://provider.example.com/connect

Open-source project

Public source, Apache-2.0, provider-neutral by design

The GitHub repository is the authoritative source for functionality, limitations, installation, and contribution. Issues and Discussions are the support channels documented upstream.

Working with Synairo

Need a custom Salesforce document workflow?

Synairo designs and builds Salesforce architecture, enterprise integrations, and document intelligence. ScanForce Open is one open-source building block - not a substitute for every landscape.