Tutorials/Copilot Studio/Enabling Unstructured Data Search in Copilot Studio with Dataverse Multiline Text and File Columns
Copilot Studiointermediate

Enabling Unstructured Data Search in Copilot Studio with Dataverse Multiline Text and File Columns

Learn how to configure Dataverse multiline text and file columns for unstructured search in Copilot Studio, enabling your agents to search within descriptions and attached documents.

NA
Narmer Abader
@narmer · Published June 3, 2026

Copilot Studio’s Dataverse knowledge source can surface unstructured data from multiline text columns and file columns. When configured correctly, agents can answer questions based on long-form text and the content of attached PDFs or text files. This unlocks scenarios like a project discovery agent that sifts through project descriptions and attached briefs to find relevant initiatives.

In this guide, we'll walk through an example using a custom Projects table. The agent will be able to retrieve projects by searching detailed descriptions and the text inside uploaded project brief files.

Scenario Overview

Imagine a consulting firm that wants a Copilot agent to help employees quickly locate projects based on specific requirements. The Projects table contains the following columns:

Column NameData TypePurpose
Project NameTextShort title of the project
ClientTextClient organization name
StatusChoice (Active / Closed)Current phase
Detailed NotesMultiple Lines of TextLong description of the project scope and goals
Project BriefFileUploaded PDF or text file with full proposal

The goal: an employee asks "Find projects related to AI governance" and the agent returns matching projects by searching within Detailed Notes (multiline text) and the content of Project Brief files.

Step-by-Step Configuration

1. Prepare the Dataverse Table

If you don’t already have a table, create a new table in make.powerapps.com. Add the columns from the table above.

For the Detailed Notes column, enable the Searchable property in the column settings. This allows the underlying search index to include its content.

The Project Brief file column will have the Searchable property grayed out and set to No by default. This is expected — file columns are still indexed for unstructured search as long as they are included in the Quick Find view (covered in step 3).

File format support

Only certain file types are indexed: TXT, PDF, DOCX, HTML, XML, PPTX, XLSX. Image‑only PDFs are not searchable. Keep your documents text‑rich.

2. Configure the Main Form for File Upload

To upload files to a record, the file column must be present on the main form.

  • Navigate to the table’s Forms area.
  • Open the Main form.
  • Drag the Project Brief field onto the form canvas.
  • Save and publish the form.

Now you can open any row, click Edit, and use the Project Brief field to attach a file.

Upload a sample file (e.g., a TXT file containing a paragraph about AI governance) to a record. This file will later be used for testing.

3. Add Columns to the Quick Find View

The critical step that enables Copilot Studio to search these columns is adding them to the table’s Quick Find view under the Find By section.

  • Open the table’s Views area.
  • Locate and edit the Quick Find view.
  • In the Find By section, add Detailed Notes and Project Brief.
  • Save and publish the view.

Without this step, even properly configured columns will not be searchable by the agent.

4. Connect Dataverse Knowledge in Copilot Studio

  • In Copilot Studio, create a new agent (or use an existing one).
  • Go to the Knowledge tab and select Add knowledge sourceDataverse.
  • Choose the Projects table and confirm the configuration.

The source will appear as Ready after a few seconds, but the unstructured data may not be indexed immediately. You can verify indexing progress using the text data status endpoint.

5. Check Indexing Status

While the knowledge source says "Ready", the content inside your multiline text and file columns might still be processing. Use the following endpoint to inspect the last indexed timestamp:

https://<your-environment-url>/api/copilot/v1.0/textdatastatus

Replace <your-environment-url> with your Dataverse environment’s base URL (e.g., org123.crm.dynamics.com). The response will list each table and column with their indexing state. Wait until you see a recent timestamp for the Detailed Notes and Project Brief columns before testing.

Patience required

Indexing can take anywhere from a few minutes to over an hour depending on the size of your data. Plan your testing accordingly.

6. Fine‑tune System Instructions

To produce consistent, structured output, update the agent’s system instructions. Go to the Overview tab of your agent and edit the Instructions field.

Use a prompt that defines:

  • The agent’s role.
  • Hard constraints to use only knowledge data.
  • A precise output format.
textExample system instructions for a project discovery agent
You are a project discovery assistant.

HARD CONSTRAINTS (must always be followed):
– ONLY use project information found in your Dataverse knowledge.
– NEVER infer, paraphrase, or create project details.
– If no projects match the query, respond with exactly: "No matching projects found."
– Retrieve all column values from the matching records.

OUTPUT FORMAT (use exactly this structure for each result):
* <Project Name>
– Client: <Client>
– Status: <Status>
– Detailed Notes preview: <first 150 characters>

DO NOT add any extra commentary or headers.

Adjust the format to suit your reporting needs. In our example, we limit the preview of the multiline text field to avoid overwhelming the user.

Go to the Test pane in Copilot Studio and ask a question such as:

"Show me projects that involve AI governance."

If the indexing is complete and the Quick Find view is correctly set up, the agent will return any records where Detailed Notes or the text inside the Project Brief file matches the query. You can also test with exact phrases found in the uploaded file.


Security & Delegation Considerations

  • Permissions: The agent uses the same Dataverse security roles as the user. Only records the user can read will be returned.
  • Delegation: Unstructured search is performed server‑side; you don’t need to worry about delegation limits as you would in Canvas Apps. Indexing handles the heavy lifting.
  • File Content Security: File columns store data in the Dataverse file store. Access is governed by standard table permissions. Ensure that sensitive documents are not exposed to unintended audiences.

Common Mistakes & Troubleshooting

MistakeSymptomFix
Multiline text column not marked as SearchableAgent returns no results for that columnEnable Searchable in column settings
Columns missing from Quick Find view’s Find ByAgent searches only primary name fieldsAdd the columns to the Quick Find view
File not yet indexedRecent uploads are not returnedCheck the text data status endpoint and wait for indexing
Unsupported file typeFile content is ignoredConvert to TXT, PDF, DOCX, etc. before uploading
Agent instructions too restrictiveAgent refuses to answer valid questionsRelax constraints to allow acceptable formatting variations

Recommendation

Unstructured data search is a powerful feature, but its success depends on two often‑overlooked details:

  1. Adding the columns to the Quick Find view’s Find By list.
  2. Waiting for index completion before testing.

Build your system instructions iteratively: start with a simple output format, then refine as you see real messages. Be mindful of the indexing latency when you update content or add new files – a short delay is normal.


References