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.
Includes real-time threat detection, automated patching, and 24/7 monitoring across all enrolled devices. $12.50 / user
Per-user license. Includes:
- Exchange Online & Teams
- OneDrive 1TB
- Intune device management
- Azure AD Premium P1
Proactive monitoring for 2 on-prem servers with automated alerting. $250.00 / mo
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.
| Field | What it formats |
|---|---|
| Product descriptions | The customer-facing description on each line item |
| Time entry notes | Notes shown alongside time entries on detailed invoices |
| Invoice comments | Top and bottom comment blocks on the invoice |
| In templates | Use the | markdown filter on any template variable |
Formatting reference
Text formatting
| You type | Result |
|---|---|
**bold text** | bold text |
*italic text* | italic text |
~~strikethrough~~ | |
**bold and *italic*** | bold and italic |
Lists
| You type | Result |
|---|---|
- First item- Second item- Third item |
|
1. Step one2. Step two3. Step three |
|
You can also use * or + for unordered lists. ConnectWise bullet characters like • and ● are automatically converted to proper list items.
Links
| You type | Result |
|---|---|
[[email protected]](mailto:[email protected]) | [email protected] |
[Visit our portal](https://portal.bettermsp.com) | Visit our portal |
Images
| You type | Result |
|---|---|
 | 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 type | Result |
|---|---|
# Heading | Heading (bold, same font size) |
## Subheading | Subheading (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 type | Result |
|---|---|
: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
-
Go to Page > Markdown.
-
Turn on the toggles for the fields you want to format: Product Descriptions, Time Entry Notes, and Comments.
Additional options:
- Cleanup Markdown — normalizes ConnectWise bullet characters, collapses extra blank lines, and tidies up whitespace. On by default and recommended.
- Display Images — renders
as inline images. Turn off if you don’t want images on invoices. - Icons — enables
:ph-icon-name:syntax. Configure the icon style under Page > Markdown > Icons.
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:
- Bullet normalization — ConnectWise bullet characters (
•,●) are converted to standard markdown bullets - Whitespace cleanup — three or more consecutive blank lines collapse to two
- Duplicate bullet merging — stray bullet characters on their own line are merged with the next line This means text that was originally formatted for ConnectWise’s plain text display still looks clean when rendered as markdown.
March Summary
This month we completed the following for your organization:
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].