Microsoft Copilot in Microsoft Lists With JSON Formatting: Behavior Notes
🔍 WiseChecker

Microsoft Copilot in Microsoft Lists With JSON Formatting: Behavior Notes

When you use Copilot in Microsoft Lists, it can create, update, and summarize list items. JSON column formatting is a powerful way to change how list data looks visually. However, Copilot does not always respect or preserve every JSON formatting rule you apply. This article explains exactly how Copilot interacts with JSON-formatted columns, what formatting Copilot keeps, and what it ignores or resets. You will learn the specific behaviors to expect and how to avoid losing your custom formatting.

Key Takeaways: Copilot and JSON Formatting in Microsoft Lists

  • Copilot writes plain text to list columns: JSON formatting applied to a column is a visual layer; Copilot writes data as plain text and does not automatically apply JSON styles to new or updated items.
  • JSON formatting persists on columns that Copilot does not modify: If Copilot edits only certain columns, JSON formatting on untouched columns remains unchanged.
  • Copilot can read formatted data but may not interpret custom JSON logic: Copilot reads the underlying raw text value, not the visual output of JSON formatting, so conditional formatting based on JSON expressions may not affect Copilot’s understanding.

ADVERTISEMENT

How Copilot Interacts With JSON-Formatted Columns

JSON column formatting in Microsoft Lists uses a JSON schema to change the appearance of list data. You can change background colors, icons, fonts, and conditional display rules. Copilot, on the other hand, operates on the data layer of the list. When you ask Copilot to add a new item or update an existing item, Copilot writes the text or number value directly to the underlying SharePoint list column. The JSON formatting layer sits on top of this data and renders the visual style based on the column’s value. This means Copilot does not generate or modify JSON formatting code. It only changes the raw data that the formatting then interprets.

For example, if you have a column named Status with JSON formatting that turns the cell green when the value is Complete and red when it is In Progress, Copilot can set the Status column to Complete. The JSON formatting then applies the green color. But if Copilot sets the Status column to a value that does not match any condition in your JSON code, the column will appear with the default formatting or no formatting at all. Copilot does not update the JSON schema to add new conditions.

What Copilot Preserves From JSON Formatting

Copilot preserves all existing JSON formatting on columns that it does not directly modify. If you have a Date column with JSON formatting that adds a calendar icon, and Copilot only edits a Notes column, the Date column’s formatting stays intact. Additionally, if Copilot sets a column’s value to a valid choice that matches a JSON condition, the visual formatting applies correctly. The JSON schema itself is never deleted or corrupted by Copilot actions.

What Copilot Resets or Ignores

Copilot can reset JSON formatting when it updates a column that uses a choice column with JSON formatting. If Copilot writes a value that is not in the predefined choice list, the column may show a blank or error state. Also, Copilot does not respect JSON formatting that hides or shows elements based on complex expressions. For instance, if your JSON formatting hides a column when a certain condition is met, Copilot still sees the underlying data and can modify it. The visual hide is only for the list view, not for Copilot’s data operations.

Steps to Verify Copilot Behavior With JSON-Formatted Lists

Before relying on Copilot to maintain your JSON formatting, test the behavior with a sample list. Follow these steps to see exactly what Copilot does and does not preserve.

  1. Create a test list with JSON-formatted columns
    In Microsoft Lists, create a new list named Copilot JSON Test. Add columns: Title (single line of text), Status (choice with values Not Started, In Progress, Complete), and Priority (choice with High, Medium, Low). Apply JSON formatting to the Status column that sets green background for Complete, yellow for In Progress, and red for Not Started. Save the list.
  2. Add a sample item manually
    Add one item: Title = Sample Task, Status = In Progress, Priority = High. Verify the JSON formatting shows the yellow background for the Status column.
  3. Use Copilot to update the item
    Open the list in a browser with Copilot enabled. In the Copilot pane, type: Update Sample Task Status to Complete. Press Enter. Copilot will update the Status column to Complete. The JSON formatting should now show a green background for that item.
  4. Test a value outside the JSON conditions
    In the Copilot pane, type: Update Sample Task Status to Done. Press Enter. Copilot will set the Status column to Done, which is not a defined choice. The JSON formatting will not match any condition, so the column background will appear as default white or gray. The JSON schema itself remains unchanged.
  5. Check if Copilot modifies JSON code
    After any Copilot update, open column settings for the Status column and inspect the JSON formatting code. It will be identical to what you originally wrote. Copilot never adds, removes, or edits the JSON schema.

ADVERTISEMENT

Common Issues When Using Copilot With JSON Formatting

Copilot Writes a Value That Breaks Conditional Formatting

If your JSON formatting uses conditional logic based on exact text matches, and Copilot writes a value that is slightly different, the formatting will not apply. For example, if your JSON checks for the string Complete with a capital C, but Copilot writes complete with a lowercase c, the condition fails. To avoid this, ensure your JSON conditions use case-insensitive comparisons or accept a range of values. Use the toLowerCase function in JSON formatting to normalize input.

Copilot Adds Items That Ignore JSON Defaults

When Copilot creates a new item, it may leave some columns blank. If your JSON formatting expects every column to have a value, the blank columns will display with default formatting. To fix this, set default values for columns in the list settings. Go to List settings > Column default value settings and define a fallback value for each column. This way, when Copilot creates an item and leaves a column empty, the default value triggers the correct JSON condition.

JSON Formatting Uses Complex Expressions That Copilot Cannot Interpret

Copilot reads the raw text or number value in a column. It does not evaluate JSON expressions like @currentField or operators like ==. If your JSON formatting uses advanced expressions to compute a display value, Copilot still writes the underlying data. The computed display is only for the list view. If you need Copilot to understand the computed value, you must store that computed value in a separate hidden column.

Copilot and JSON Formatting: Differences in Behavior

Item Copilot Action JSON Formatting Effect
Update an existing item Writes new value to column JSON formatting re-evaluates based on new value; if value matches condition, visual style applies; if not, default style appears
Create a new item Sets values for specified columns JSON formatting applies only if column values match defined conditions; blank columns use default formatting
Modify JSON schema Never modifies JSON code JSON schema remains unchanged; only underlying data changes
Read formatted display Reads raw data, not visual output Copilot does not see icons, colors, or conditional text; it sees the plain text or number

Now you understand how Copilot behaves with JSON formatting in Microsoft Lists. Test your own lists using the steps above to confirm which formatting Copilot preserves. To maintain consistent visual formatting, ensure your JSON conditions cover all possible values Copilot might write. Consider adding a validation column that checks Copilot-written values against your JSON conditions. This will prevent unexpected visual breaks and keep your lists looking exactly as you designed.

ADVERTISEMENT