x0 Home Word add-in

Word add-in & mail merge

Office.js task pane for Word (Windows / Mac). Sign in to x0, then insert A4 stationery filled from Xero contacts and items.

Install

  1. Open Word add-in on the portal: /word/addin/
  2. Download x0-word-addin.xml (/word/addin/manifest.xml)
  3. Word → InsertMy Add-insUpload My Add-in → choose the manifest
  4. Home ribbon → Connect x0

Same x0 login and API token as the Excel add-in. Task pane: /word/addin/taskpane/ (HTTPS, frameable).

Templates

Template Sheet / file Data
Customer mail merge customer-mailmerge.docx Customers (IsCustomer)
Supplier mail merge supplier-mailmerge.docx Suppliers (IsSupplier)
Customer labels customer-labels.docx Avery L7160 — 3×7 on A4
Inventory labels inventory-labels.docx Avery L7160 — item code, name, price
Item catalogue item-catalogue.docx Xero items price list

Downloads (signed in):

  • Blank template: /word/templates/<slug>.docx
  • Filled from cache: /word/templates/<slug>.docx?filled=1
  • CSV for desktop Mailings: /word/merge.csv?kind=customers|suppliers|items
  • Zip of all blanks + CSVs: /word/templates.zip

Add-in: Insert template · Merge now

  1. Sideload the manifest and sign in (token stays in add-in storage, not in the document).
  2. Pick a template.
  3. Insert template — blank MERGEFIELD letter/labels («ContactName», «ItemCode», …).
  4. Merge now — builds a filled .docx on x0 and replaces the document body.

Refresh contacts / items on the portal first if the cache is stale (data-freshness.md).

Desktop Word mail merge (no add-in)

  1. Download a blank .docx and the matching CSV.
  2. Word → MailingsSelect RecipientsUse an existing list → CSV.
  3. Fields are already MERGEFIELD. Finish & Merge → Print or Edit individual documents.

Label stock: Avery L7160 / L7159 (63.5 × 38.1 mm, 21 per A4 page).

Merge fields

Contacts: ContactName, FirstName, LastName, GreetingName, EmailAddress, Phone, AddressLine1, AddressLine2, City, Region, PostalCode, Country, TaxNumber, AccountNumber, AddressBlock

Items: OData entity set Items (GET /odata/v1/Items). Fields commonly used in Word: ItemCode, ItemName, ItemDescription, SalesPrice, PurchasePrice, QuantityOnHand, TaxType, AccountCode (mapped from Xero Code / Name / details).

Seller (every row): SellerName, SellerAddress, SellerGst, SellerPhone, SellerEmail, LetterDate

Letters are not tax invoices. Use NZ Excel forms for GST stationery.

APIs

Method Path Auth
GET /word/addin/manifest.xml public
GET /word/addin/taskpane/ public (frameable)
GET /v1/word/merge-data?kind= Bearer API key
GET /v1/word/templates/{slug}?filled= Bearer API key

Code signing / trust

Same manifest architecture as the Excel add-in:
Office.js manifests are XML, never Authenticode-signed. Trust is
catalog/admin deployed plus HTTPS on the taskpane host — not a certificate on
the manifest.

Deployment path Signing needed? Notes
Sideload ("Upload My Add-in" — current path, above) No Per-user/device testing.
Microsoft 365 admin center — Centralized Deployment No code signing Recommended org-wide path; requires HTTPS on every manifest URL.
SharePoint app catalog No code signing Older org-wide path, same HTTPS requirement.
AppSource / Microsoft Marketplace No Authenticode, but mandatory HTTPS + certification review Only relevant for a public marketplace listing.

What is needed: a verified-publisher Microsoft 365 tenant admin to
approve Centralized Deployment/catalog trust, HTTPS on /word/addin/* (and
every other manifest URL), and — only if listing on AppSource — a Microsoft
Partner Center account. An Authenticode/EV certificate is only relevant if x0
ever ships a native VSTO/ClickOnce desktop installer, which it does not
today (this is a browser-hosted Office.js task pane).

Sign in to see connection status