the full tour

Everything your IT team will ask. Answered.

How Templ8r actually works inside Dynamics 365 — the surfaces it lives on, how bindings compile, what the engine does between the click and the timeline. For security and data-handling, see the security overview; for build-vs-buy, the comparison.

fully native to dynamics 365

Lives where your team already lives.

Templ8r is not a separate portal your users sign into. The whole experience runs inside the D365 shell — same auth, same security roles, same timeline, same audit trail.

01 · ribbon
▤ Generate document

Generate document

A native command-bar button on every templated entity. One click, in-context, no app switch.

02 · in-D365 surface
Modal
Centred dialog · template picker · format radios
Side pane
Right rail · context-aware · stays mounted

Modal or side pane

Pick the modal for full-screen focus or the App side pane for a persistent rail. Both render inside the D365 shell — never a new tab.

03 · timeline
just now · Contoso
▤ Generated by Templ8r
▢ Contoso_Sales_Order.docx

Lands as a Note

Output attaches to the originating record's timeline as a Note — Word, PDF, both as 2 notes, or zipped. Visible to anyone with read access.

04 · audit
caller · jamie.reid@…
record · ORD-01034
template · Contoso Sales Order v3
status · succeeded

Immutable audit row

Who · what · when · which template. Survives template rename, archive, delete — exportable for compliance and procurement.

mapping binder

Click through your relationships. We'll write the query.

The portal's visual binder lets admins point a Word token at any column on any related record — without writing OData. Pick a token, follow lookups through the schema, drop on the column you want. Templ8r compiles every binding into a single nested $expand with column-scoped $select at every hop. One round-trip, however deep the chain.

  • 1:1, 1:N, N:1, N:N — every relationship shape supported
  • Polymorphic lookups (customer → account or contact) auto-resolved
  • Choice / status / currency fields render as their friendly label
  • Format hints (currency, date, percentage) per token
  • Live preview against any real record before you publish
binding · in the visual mapper
{{customer.parentaccountid.territoryid.managerid.fullname}}
Order
salesorder · from record
Customer
customer · lookup → account
Parent group
parentaccountid · lookup → account
Region
territoryid · lookup → territory
Region manager
managerid · lookup → systemuser
Full name
fullname · string
compiles to a single Dataverse fetch — 1 round-trip, 4 hops, 1 column selected at the leaf.
the authoring portal

Three steps. No developer required.

The portal is where admins live. Upload a Word file, bind tokens to Dataverse columns, publish to the ribbon — all without writing a single line of OData.

01 · upload

Drop in a Word file with {{tokens}}

No DSL. Templ8r scans the .docx, splits typed tokens across spell-check runs, and auto-proposes Dataverse bindings on the next step.

02 · bind

Auto-suggest fills the obvious ones

Confidence-scored picks: high, medium, unmatched. Admins only touch the rows that need a human. Multi-hop relationships walked visually.

03 · publish

Live in the ribbon, scoped to roles

One click publishes the template to the D365 picker. Pick which security roles see it. Versioned — older snapshots stay queryable in audit.

under the hood

What happens between the click and the timeline.

Twelve stages. Click any of them — see the exact compiled $expand, the wire payload, the merge step. Built for security review and procurement. See the full token reference and authoring guide for binding shapes, format hints, and a sales-order example. The engine talks Dataverse Web API directly — no intermediate flow runtime.

Figure 1 · the engine, in twelve stages
Stage V· 1 dataverse hop

Combined metadata fetch

EntitySet name + column types in ONE Dataverse call.

EntityDefinitions(LogicalName='X')?$select=LogicalCollectionName&$expand=Attributes(...). Process-cached by (orgUrl, entity) — zero hops on warm cache.

// one round-trip
GET /EntityDefinitions(
   LogicalName='salesorder')?
   $select=LogicalCollectionName
   &$expand=Attributes(...)

Seen enough? Run the pilot.

30 days, your tenant, your templates. From £89/mo after.

Start free pilot →Book a 20-min demo