incidentcontactactivitypointerGenerate a case summary from Dynamics 365 Customer Service
Support teams write the same summary three times: once for the customer, once for the escalation, once for the handover. Each is the case record read aloud: who, what, how urgent, when it was opened, what has happened since.
The case summary starter renders that from the incident record and its timeline. The primary contact comes through a many-to-one link-entity, the activities through a one-to-many on activitypointer ordered newest first, and a case without a description prints a single italic line saying so rather than an empty heading.
Unlimited watermarked use, no time limit. $2,400 a year per tenant removes the watermark.
From record to case summary in 4 steps
Download the case summary template
Bound to incident, with contact as primarycontact and activitypointer as activities. It uses {{#unless}} for the no-description fallback.
Load it in Template Studio
New Template, bound table incident, upload, paste manifest and sample data, preview.
Generate from the case
Open the record, click Generate document, choose the template and Word or PDF. The file attaches to the record's timeline without a flow.
Send it at milestones
A flow on case status Resolved can generate the summary as PDF and email it to the contact, with the resolution and the activity list included.
Start from the case summary starter
Timestamps use _raw with a format ({{incident._raw.createdon:d MMMM yyyy HH:mm}}) so they read consistently regardless of the generating user's locale. Add {{incident.resolution}} or a knowledge-article lookup by logical name if your process records them.
- Case number, status and preparation date
- Customer, primary contact with email and phone, priority, origin, type, subject, product, owner
- Opened and resolve-by timestamps formatted the way you want
- Description, with an italic fallback line when the case has none
- Timeline activities: date, type, subject, status, newest first
Tokens in the template
Case {{incident.ticketnumber}} · {{incident.statuscode}} · {{incident.prioritycode}}
{{incident.title}}
Contact: {{#each incident.primarycontact}}{{fullname}} · {{emailaddress1}}{{/each}}
Opened {{incident._raw.createdon:d MMMM yyyy HH:mm}} · resolve by {{incident._raw.resolveby:d MMMM yyyy HH:mm}}
{{#if incident.description}}{{incident.description}}{{/if}}
{{#unless incident.description}}No description was recorded on the case.{{/unless}}
{{#each incident.activities}}{{_raw.createdon:d MMM yyyy}} | {{activitytypecode}} | {{subject}} | {{statecode}}{{/each}}Paste any of this into the template playground with the sample data to see it render in your browser.
- Can the summary include only certain activity types?
- Yes. Add a filter on activitytypecode inside the activities link-entity in the manifest. The resolver carries link-entity filters and order clauses through to the query.
- Does the customer's email address get sent anywhere?
- Only into the document, which is generated in your environment. Nothing in the data is transmitted to VerseBlocks or any other party.
- Can agents generate it without a security role change?
- Generation runs under the calling user's Dataverse privileges. Anyone who can read the case and its activities, and has the VerseDocs user role, can generate the summary.
Rendered in your tenant. Priced per tenant.
VerseDocs is a managed solution of Dataverse plug-ins. Templates, field values and generated files stay in your environment. Try every feature free with a watermark; one licence key removes it for every environment, user and document in the tenant.