Temporarily unavailable. Templates and bulk send are being rebuilt and are not available right now. Until they return, send each document individually. The steps below describe how the feature will work once it is back.
For sending the same contract to many recipients (e.g., "Q2 offer letters to 50 candidates", "annual NDA renewal for all contractors"), use bulk-send.
Setup
- Create a Template (or pick an existing one) under Templates. The template's PDF + field placements + signer roles become the blueprint each row inherits
- On the template detail page, click Bulk send via CSV
- Prepare a CSV with at minimum two columns:
emailandname. Any other columns map to template variables by name (e.g., a template variable{salary}reads from a CSV column namedsalary) - Upload the CSV, give the batch a name (e.g., "Q2 2026 offer letters"), optionally add a personal message that appends to every invitation email
- Click Send batch
Limits
- 10 MB max CSV size
- 10,000 rows max per file
- 100 rows max per inline batch (above this, batches queue for background worker — coming in a future release)
- Each row creates one Document + one SigningSession + one invitation email
What happens per row
For every valid row:
- A new Document is created from the template's PDF
- The CSV variables are substituted into the field placeholders
- A SigningSession is created with the row's email + name
- The invitation email fires (with your tenant branding and bilingual EN+AR body)
- An audit event records the per-signer document_sent for compliance trail
Rows that fail validation (missing email, malformed phone, required template variable absent) are skipped — they get a status of "skipped" with the specific error captured on the row, so you can see exactly what to fix and re-upload.
Tracking progress
After dispatch, you see a summary:
- Total rows — what we tried
- Sent — invitations dispatched successfully
- Failed — validation skipped OR email-delivery failed (with error message per row)
Each row is also a real Document in your Documents list, so you can track signing status individually after dispatch.