Custom Invoice Templates

Using Markdown in Your Invoice Templates

Format text on your ConnectWise invoices with markdown. Add bold, italic, lists, links, and more to product descriptions, comments, and time entries.

Your ConnectWise product descriptions, time entry notes, and invoice comments don’t have to be plain text. Better Invoice processes these fields as markdown, so formatting you add in ConnectWise — bold, lists, links, icons — renders as polished, styled text on the final invoice.

What it looks like

Here’s an invoice with markdown formatting applied to product descriptions and a comment.

Monthly Managed Services
Managed Endpoint Protection
Includes real-time threat detection, automated patching, and 24/7 monitoring across all enrolled devices.
$12.50 / user
Microsoft 365 Business Premium
Per-user license. Includes:
  • Exchange Online & Teams
  • OneDrive 1TB
  • Intune device management
  • Azure AD Premium P1
$22.00 / user
Server Monitoring & Management
Proactive monitoring for 2 on-prem servers with automated alerting.
$250.00 / mo
Invoice Comment

March Summary

This month we completed the following for your organization:

  • 127 support tickets resolved
  • 12 security patches applied across all workstations
  • 3 phishing attempts blocked and reported

Your next scheduled maintenance window is April 12, 8:00 PM – 11:00 PM. We'll update firmware on both servers and give the backup drives a pep talk.

Questions? Reach us at [email protected].

All of the formatting above comes from markdown typed directly into ConnectWise fields. Here’s what you’d type:

:ph-shield-check: Managed Endpoint Protection
Includes **real-time threat detection**, automated patching,
and *24/7 monitoring* across all enrolled devices.

:ph-cloud: Microsoft 365 Business Premium
Per-user license. Includes:
- Exchange Online & Teams
- OneDrive 1TB
- Intune device management
- Azure AD Premium P1

:ph-hard-drives: Server Monitoring & Management
Proactive monitoring for **2 on-prem servers** with automated alerting.

# March Summary

This month we completed the following for your organization:

- **127** support tickets resolved
- **12** security patches applied across all workstations
- **3** phishing attempts blocked and reported

Your **next scheduled maintenance window** is *April 12, 8:00 PM – 11:00 PM*.
We'll update firmware on both servers and give the backup drives a pep talk.

Questions? Reach us at **[email protected]**.

Where markdown works

Markdown rendering is enabled per field. Go to Page > Markdown to toggle each one.

FieldWhat it formats
Product descriptionsThe customer-facing description on each line item
Time entry notesNotes shown alongside time entries on detailed invoices
Invoice commentsTop and bottom comment blocks on the invoice
In templatesUse the | markdown filter on any template variable

Formatting reference

Text formatting

You typeResult
**bold text**bold text
*italic text*italic text
~~strikethrough~~strikethrough
**bold and *italic***bold and italic

Lists

You typeResult
- First item
- Second item
- Third item
  • First item
  • Second item
  • Third item
1. Step one
2. Step two
3. Step three
  1. Step one
  2. Step two
  3. Step three

You can also use * or + for unordered lists. ConnectWise bullet characters like and are automatically converted to proper list items.

You typeResult
[[email protected]](mailto:[email protected])[email protected]
[Visit our portal](https://portal.bettermsp.com)Visit our portal

Images

You typeResult
![Company logo](https://yourmsp.com/logo.png)Renders the image inline, scaled to fit (max 200px tall)

Images can be useful for including charts, badges, or partner logos in comments. Make sure any images you reference are fast-loading — slow images will delay your invoice rendering. To disable image rendering, turn off the Display Images toggle under Page > Markdown.

Headings

You typeResult
# HeadingHeading (bold, same font size)
## SubheadingSubheading (bold, same font size)

Headings render as bold text at the same font size as the surrounding content. They’re useful for adding structure to longer invoice comments.

Icons

Type :ph-icon-name: to insert a Phosphor icon inline with your text.

You typeResult
:ph-check-circle: Task complete Task complete
:ph-shield-check: Protected Protected

See Using Icons in Your Invoice Templates for the full guide and icon library.

Line breaks

A single line break in your text becomes a <br> on the invoice. You don’t need to add blank lines between every line — just press Enter.

Enable and configure markdown

Additional options:

Use the markdown filter in your template

If you’re pulling data into your invoice with custom data sources, those values are plain text by default. Use the | markdown filter to apply the same markdown rendering — including icons — to any template variable.

{{ sources.key.var | markdown }}

For example, say you have a custom endpoint that returns a monthly summary with markdown formatting. In your template, you’d write:

{% if sources.monthly_report %}
  <div class="markdown-content">
    {{ sources.monthly_report.summary | markdown }}
  </div>
{% endif %}

If that endpoint returns:

- **42** workstations monitored
- **99.9%** uptime
- :ph-shield-check: **0** security incidents

The | markdown filter renders it as a styled list with bold text and an inline icon — the same result as if you’d typed it into a ConnectWise comment field.

The filter uses your current markdown settings (icon style, image display, etc.). See Add Data Sources to ConnectWise Invoices for how to set up custom endpoints.

Automatic cleanup

When Cleanup Markdown is on, Better Invoice automatically tidies up text before rendering:

Ready to send better invoices?

Start for free. Your invoices should look as good as the work you do.

Get started free →