Process

Two ways to run Inkli — self-serve or integrated.

Small campaigns run through the dashboard end-to-end. Larger operations plug the render engine into their existing fulfilment stack via the API, with output delivered straight to SFTP or S3.

Self-serve flow

Six steps through the dashboard

For SMB campaigns or one-off runs. No integration — you upload, configure, and download PDFs. Print in-house or hand to a mailing house.

01

Write your message

Just like mail merge — include variables to match your recipient data. Every letter is personalised with {{first_name}}, {{company}}, and more.

02

Choose your ink type

Select between fountain ink, classic black, or gel ink. Each type carries its own density, bleed, and texture characteristics.

03

Manage handwriting defects

Fine-tune baseline drift, kerning, ink bleed, and character variation. Dial in the exact level of human imperfection.

04

Upload design

Upload a print-ready design to overlay handwritten letters onto. Your branding, logos, and layout stay intact — handwriting is layered on top.

05

Upload recipients

Import a CSV of recipients. Map columns to personalisation fields — every letter is unique and addressed individually.

06

Generate & download

Overlay onto your PDF design or download standalone — ready to print in-house or send to your production partner.

Integrated / API flow

Six calls through the engine

For mail houses, agencies, and print shops running production volume. You trigger renders programmatically; output arrives at your SFTP or S3. White-labelled — your customer never sees Inkli in the delivery path.

01

Create the campaign

Assemble settings + layout template + design in a single POST. Returns a draft campaign id.

POST /api/partner/v1/campaigns
02

Attach recipients

Bulk upload recipient rows. Delta merges + partial resubmits both supported.

POST /api/partner/v1/campaigns/:id/recipients
03

Fire a proof

Unmetered 3-recipient render. Watermarked "PROOF — NOT FOR USE". Approve to fire the billed run.

POST /api/partner/v1/campaigns/:id/process { "proof": true }
04

Approve or reject

proof.ready webhook fires. Review the PDF; approve if it looks right. Fingerprint drift detection catches settings changes since the proof.

POST /api/partner/v1/campaigns/:id/approve
05

Full render

The billed render kicks off. Progress is pollable via /campaigns/:id/status or you can just wait for the webhook.

GET /api/partner/v1/campaigns/:id
06

Delivered

campaign.completed webhook fires with output paths. PDF/X-4 lands at your SFTP or S3 delivery target — straight into the print floor.

Webhook: campaign.completed

Ready to get started?

Talk to sales if you're integrating; sign up if you just want to try it.