---
name: html-formatting
description: Use <br> for line breaks in Syncro comments; <ul>/<li> collapses; no emojis
applies-to: syncro
---

# Syncro Comment HTML Formatting

## Line breaks

Use `<br>` for line breaks in Syncro ticket comment bodies. Do not use `\n` (literal newline) — Syncro renders comment bodies as HTML, and plain newlines are collapsed to a single space.

```json
{
  "body": "Work performed:<br>- Replaced wireless adapter driver<br>- Verified network connectivity<br>- Customer running overnight memtest"
}
```

## Lists

`<ul>/<li>` does not render correctly in Syncro comments — it collapses into a single line with no visible separation. Use `<br>- ` as a bullet pattern instead:

**Wrong:**
```json
{"body": "<ul><li>Item one</li><li>Item two</li></ul>"}
```

**Correct:**
```json
{"body": "Items completed:<br>- Item one<br>- Item two"}
```

## No emojis

No emojis in Syncro comments. The same encoding rule that applies to all other output (see `conventions/no-emojis`) applies here. Syncro sends public comments as email; emoji characters can display incorrectly in various email clients.

Use `[OK]`, `[COMPLETE]`, `[PENDING]`, `[ACTION REQUIRED]` instead.

## Hidden vs. public comments

Set the visibility appropriately:

```json
{
  "hidden": true,
  "do_not_email": true
}
```

- `hidden: true` — internal only; client does not see it, no email sent
- `hidden: false` — client-visible; Syncro sends an email unless `do_not_email: true`
- `do_not_email: true` — suppress the email notification even for public comments

If a resolution comment contains passwords, internal notes, or credentials: always use `hidden: true, do_not_email: true`.

## Cascades-specific note

Never set `contact_id` on Cascades of Tucson tickets. Leaving it blank lets Syncro route the email to the correct distribution. Setting it (Meredith Kuhn has been the incorrect default in past sessions) overrides the distribution and breaks notification routing.
