Skip to main content

Digital Mailroom via API

A digital mailroom replaces manual printing, enclosing, and posting with an automated, auditable process driven by your applications.
With the Intelliprint hybrid mail API, you can turn system events into UK postal mail without touching a printer.

What Is a Digital Mailroom?

Traditionally, teams:
  • Export PDFs or Word documents
  • Print them on office printers
  • Hand-fold letters and stuff envelopes
  • Frank or stamp envelopes
  • Drop everything at the post box
This is slow, error-prone, and hard to audit. A digital mailroom:
  • Receives documents electronically (via API)
  • Prints, encloses, and posts them automatically
  • Tracks statuses and costs centrally
  • Provides an audit trail for compliance and operations

Typical Digital Mailroom Use Cases

  • Financial services
    • Statements and balance letters
    • Arrears and collections letters
    • Rate or terms changes
  • Healthcare
    • Appointment confirmations and reminders
    • Referral letters
    • Policy and consent updates
  • Local government & utilities
    • Council tax or billing letters
    • Regulatory notices
    • Service updates and works notices

Reference Architecture

  • Your core system raises events (invoice issued, appointment booked, notice required).
  • An integration service calls the Intelliprint API to create print jobs.
  • Intelliprint prints and posts the mail via Royal Mail.
  • Webhooks and tracking endpoints feed back statuses to your systems.

Pattern 1: Event-Driven Letters

Every time your system raises an event, create a letter via the API.
// Example: Node.js express-style handler for an "invoice.created" event
import Intelliprint from "intelliprint";

const ip = Intelliprint(process.env.INTELLIPRINT_API_KEY);

export async function handleInvoiceCreated(invoice) {
  const html = `
    <h1>Invoice ${invoice.number}</h1>
    <p>Dear ${invoice.customer.name},</p>
    <p>Your invoice is now due on ${invoice.due_date}.</p>
  `;

  const printJob = await ip.prints.create({
    testmode: true, // keep true while testing
    content: html,
    recipients: [
      {
        address: {
          name: invoice.customer.name,
          line: invoice.customer.address.line,
          postcode: invoice.customer.address.postcode,
          country: invoice.customer.address.country || "GB"
        }
      }
    ],
    confirmed: true
  });

  await db.invoices.update(invoice.id, {
    postal_print_job_id: printJob.id
  });
}
For complex layouts, use PDFs and the PDF to Post quickstart.

Pattern 2: Daily Batch Mail Runs

Many organisations prefer a daily run of all letters:
  1. Throughout the day, your systems create draft print jobs (confirmed: false).
  2. At a fixed time (e.g. 15:00 UK), a scheduled job confirms eligible drafts.
  3. Intelliprint prints and posts all confirmed jobs.
This lets teams:
  • Review and approve batches from a dashboard
  • Reconcile mailings with finance and operations
Learn more in Confirmation Workflow.

Pattern 3: Bulk Campaigns from CRM / CSV

For large outbound runs (e.g. new terms, service updates, marketing to existing customers), use: High-level flow: This pattern is described in more depth in
Bulk Campaigns from CRM / CSV.

Tracking & Audit Trail

Digital mailrooms need strong observability:
  • API tracking
    Use Track, Retrieve & Cancel to:
    • List print jobs by date or metadata
    • Drill into individual letters and statuses
    • Cancel jobs that have not yet been printed
  • Webhooks
    Configure Webhooks to receive events such as:
    • letter.updated – for lifecycle statuses (waiting_to_print, printing, enclosing, shipping, sent, returned, failed_wrong_address)
    • mailing_list.addresses_validated
  • Metadata
    Attach your own identifiers (e.g. customer_id, invoice_id, case_reference) via metadata so you can cross-reference letters with your internal systems.
const printJob = await ip.prints.create({
  testmode: true,
  content: "<h1>Important notice</h1>",
  recipients: [{ address: {/* ... */} }],
  metadata: {
    customer_id: "cust_12345",
    notice_type: "terms_update",
    channel: "postal"
  },
  confirmed: true
});

Compliance & Address Quality

To keep your digital mailroom reliable:
  • Use address validation for large mailings to avoid undeliverable post
    See Address Validation in Overview & Concepts.
  • Use test mode to verify templates, backgrounds, and layouts without posting real mail.
  • Use double-sided printing and the Costs guide to keep budgets under control.

Next Steps