This feature is currently available per request. Please contact our Support team to enable it for your workspace.
Overview
This guide describes how to automate sending contracts with accompanying XLSX rate sheets for signing using the airSlate API. The solution leverages the Document placeholder feature with the new Spreadsheet View mode, enabling signers to review Excel rate sheets in their native spreadsheet format directly within the signing session.
Use Case
Your organization sends contracts (DOCX files with fillable fields/tags) along with unique rate sheets (XLSX files with multiple tabs and color-coded data) to customers for signing. The altaFlow API integration automates the entire process, reducing operational costs and eliminating human errors such as uploading incorrect rate sheets.
Workflow configuration in altaFlow
Before calling the API, you need to set up a workflow in the altaFlow web interface. This is a one-time configuration step.
Log in to your altaFlow organization workspace.
Create a new workflow (or open an existing one).
Upload your contract DOCX template as the first document. Configure the fillable fields/tags on this document as needed (signature fields, text inputs, date fields, etc.).
Add a Document placeholder as the second document in the workflow. This placeholder will hold the XLSX rate sheet that is unique for each signer.
4.1. In the Document placeholder settings, enable the Keep spreadsheet view checkbox. When this option is selected:
The upload description changes to "Upload a spreadsheet" (instead of "Upload a document as a PDF file");
Supported format is restricted to XLSX only;
Only one file can be uploaded per placeholder;
The uploaded XLSX will be displayed as an interactive spreadsheet in the signing session (not converted to PDF);
Any fields previously configured on the placeholder will be removed, and adding new fields will be disabled.
5. To enable API-triggered workflow, you must add the Prefill via API bot to your flow. This bot allows external systems to trigger the workflow and upload documents programmatically.
5.1. Go to All bots in the bottom right corner;
5.2. Add Prefill via API bot;
5.3. Apply the default configuration (no additional setup is required).
6. Publish the workflow.
API integration
Once the workflow is configured, you can trigger it automatically using the altaFlow API. Each API call creates a new signing session with the contract and a unique rate sheet for the signer. Check the full API reference here.
API Endpoint: Create a new workflow
Method | POST |
URL | |
Auth | Bearer token (OAuth 2.0 access token) |
Content-Type | application/json |
Purpose | Run a workflow to generate documents and send them for signature to recipients. |
Path parameters
Parameter | Type | Description |
organization_id | string (UUID) | Your organization ID. Retrieve from Get a list of organizations. |
template_id | string (UUID) | The workflow ID . Retrieve from Get a list of templates. |
Request body
The request body is a JSON object containing the document to upload and (optionally) invite details for the signer.
Request body structure
{
"documents": [
{
"id": "<DOCUMENT_PLACEHOLDER_ID>",
"fields": [
{
"name": "placeholder",
"files": [
{
"name": "Rate_Sheet_CustomerName.xlsx",
"content": "<BASE64_ENCODED_XLSX_FILE>"
}
]
}
]
}
]
"invites": [
{
"step_name": "Recipient 1",
"email": "[email protected]",
"invite_email_template": {
"subject": "You're invited to complete the documents",
"text": "Hi! \n\nYou're invited to fill out the {flow_name}."
}
}
]
Body parameters
Field | Required | Description |
id | Yes | The ID of the Document Placeholder in your workflow where the XLSX will be uploaded. |
name | Yes | File name for the uploaded document (e.g., "RateSheet_Acme.xlsx"). |
content | Yes | The XLSX file content is encoded as a Base64 string. |
Yes | Recipient email address. Required if using invites to send the signing link via email. | |
step_name | Yes | The step name as configured in the workflow (e.g., "Recipient 1"). |
Base64 Encoding the XLSX File
The XLSX file content must be sent as a Base64-encoded string in the "content" field. Here are examples for different environments:
Linux / macOS (Terminal)
base64 -i rate_sheet.xlsx | tr -d "\n" > rate_sheet_b64.txt
Python
import base64
with open("rate_sheet.xlsx", "rb") as f:
encoded = base64.b64encode(f.read()).decode("utf-8")
Node.js
const fs = require("fs");
const encoded = fs.readFileSync("rate_sheet.xlsx")
.toString("base64");
Post-Signing: Export & Delivery
Once the documents are signed, the workflow wraps up automatically:
Retrieve via API: Download the completed files directly to your system. The signed contract is exported as a secure PDF, while the rate sheet retains its original XLSX format.
Automate email delivery: Set up the Send email notifications when a recipient completes the documents bot to instantly email the executed contract and rate sheet to the signer and stakeholders. Zero manual intervention required.
