Contract Ingestion
Contracts can enter Tabs through several channels. All inbound paths feed into the same contract processing pipeline.
Sync PDFs from closed-won deals in Hubspot or opportunities in Salesforce. CRM sync also brings in customer information and custom fields as configured in CRM integration settings.
DocuSign and PandaDoc can automatically email signed PDFs to Tabs once a signature is complete. The PDF attachment is required — a link alone won’t work.
Email finalized contracts to contract-ingest@tabsplatform.com from an authorized company domain. The message must include a PDF attachment.
Create a contract record via POST /v3/contracts, then upload the PDF with POST /v3/contracts/{id}/file. Best for batch imports or automated workflows from an unsupported tool.
Your ERP handles accounting downstream — it does not upload contracts into Tabs. After a contract is processed, customers, invoices, payments, credit memos and revenue journal entries sync to your ERP per your configuration.
Email ingest requirements
To use email ingest reliably:
- Send from an official company email domain (or a configured subsidiary domain)
- Attach a PDF — links from DocuSign or PandaDoc without a PDF attachment will be discarded
- Configure e-signature platforms to attach a signed PDF copy automatically when a document is completed
Emails from third-party domains (consultants, lawyers, advisors) cannot be automatically associated with your Tabs instance and must be uploaded manually.
API upload flow
Tabs uses a three-step upload: create the customer (if needed), create the contract record, then attach the PDF.
Step 1 — Create the customer
Save the id from the response — you’ll need it in the next step. Skip this step if the customer already exists in Tabs.
Step 2 — Create the contract
Save the id from the response. The contract is created with status NEW; processing has not started yet.
Step 3 — Upload the PDF
With shouldProcess=true (the default), Tabs stores the file and begins contract processing. Check status with GET /v3/contracts/{id}.
Avoiding duplicates: Tabs deduplicates on a hash of the exact PDF file, regardless of which channel it arrives through. A duplicate upload is flagged as such rather than silently reprocessed — a logged-in user can choose to reprocess it if needed.
Processing flow
After a contract is uploaded, Tabs runs it through an automated pipeline that identifies the correct customer, classifies the document, extracts all relevant information, and triggers invoice generation. In rare cases, a human reviewer is notified to check the contract before it is marked as processed.
Identify customer
Tabs matches the contract to a customer using CRM data, API parameters, or details extracted from the document itself.
Contracts that can’t be processed — because they’re duplicates, corrupted, or missing key information — are given status BLOCKED instead, and need to be resolved in the app.
Most contracts are processed by Contract Agent within a few minutes of upload. At peak times and when uploading hundreds or thousands of documents, processing will take longer.
If Tabs creates a new customer during processing and can’t confidently match it to an existing record, you’ll need to confirm the customer before invoices can be sent.

