UiPath Apps – Search by Name, DOB, or Invoice Number and Display Full Record

I am working on a UiPath Apps use case where I have a text box for searching invoice records.

I would like to know how to implement the following requirement:

  • The user enters any single piece of information in the search text box, such as Name, Date of Birth, Invoice Number, or any other available field.
  • Based on the entered value, the application should search the invoice records.
  • The complete invoice details corresponding to the matching record(s) should then be displayed in a Table or Custom List.

For example, if I enter only the Name, the application should identify the matching invoice record and display all the associated invoice details in the table—not just the Name field.

What would be the recommended approach to implement this functionality in UiPath Apps?

Hi Rohith,

  1. Add a Search TextBox in UiPath Apps.
  2. Create a Process/API call that receives the search value entered by the user.
  3. In the UiPath workflow, query your invoice data source (Data Service, SQL, Excel, etc.).
  4. Apply a filter that checks the entered value against multiple columns:

Name = SearchText OR
InvoiceNumber = SearchText OR
DOB = SearchText OR
Email = SearchText

For SQL:
SELECT *
FROM Invoices
WHERE Name LIKE ‘%’ + @SearchText + ‘%’
OR InvoiceNumber LIKE ‘%’ + @SearchText + ‘%’
OR CAST(DOB AS VARCHAR) LIKE ‘%’ + @SearchText + ‘%’
OR Email LIKE ‘%’ + @SearchText + ‘%’

  1. Return the entire matching record(s), not just the matched field.
  2. Bind the returned DataTable/List to a Table or Custom List control in UiPath Apps.

Thanks

@Rohith_Kumar2

If the data is in data services then its more straight forward

or if you are on latest cloud versions then data services has an option to link the external DBs as well directly

basically have a button or on update you can trigger workflows that would update the list linked to the table so that the table displays latest info

cheers

Hey @Rohith_Kumar2 If the data is stored in UiPath Data Service, we can use a single Search TextBox with the Query Builder and apply filters on Name, DOB, Invoice Number, etc. Once a matching record is found, bind the complete entity record to a Table/Custom List to display all required details. A separate workflow/API is not required unless the data source or search logic requires it.

Welcome to UiPath community also and Happy Automation :grinning_face_with_smiling_eyes:

Hi @Rohith_Kumar2

You can achieve this by using a Search TextBox and passing the entered value to a UiPath Process or API.

The workflow can search the value across multiple fields such as Name, DOB, Invoice Number, Email, etc. Once a matching record is found, return the complete record, not just the matched field.

In UiPath Apps, you can then bind the returned data to a Table or Custom List.

A simple flow would be:

Search TextBox → Run Process/API → Search Data Source → Return Complete Record → Display in Table/Custom List

If you are using SQL, you can use an OR condition to search across multiple columns.

This approach should work well for the requirement shown in your screenshot.

One design point to add: a single free-text box is convenient, but Name, DOB, and Invoice Number have different data types and matching rules. I would normalize the input first rather than converting every column to text.

Recommended flow:

  1. Trim the search value and do nothing until it has a reasonable minimum length.
  2. If it matches your invoice-number pattern, query Invoice Number using an exact match first.
  3. If it parses as a date, query DOB as a Date value (not as a formatted string).
  4. Otherwise, search the text fields such as Name with a case-insensitive contains/starts-with rule.
  5. Bind the entire returned record collection to the Table or Custom List. The filter decides which rows are returned; the control can still display every column from those rows.

For a small local collection, an Apps filter expression is fine. For Data Service or a large data set, do the filtering server-side through the entity query/process rather than loading all invoices into the app and filtering in the browser. Add a Search button or a short debounce so every keystroke does not execute a query.

Also decide how to handle multiple matches. Show a results table with the key columns, then let the user select one row and bind a detail panel to the selected record. This is safer than assuming a name is unique. Keep DOB in a Date field and invoice number in its native field type; string conversion can create incorrect matches and poor performance.

Hi @Rohith_Kumar2

You can use the textbox value as a search parameter and pass it to a workflow. The workflow can check the value against Name, DOB, Invoice Number, etc., and return the complete matching invoice record(s).

Then bind the returned DataTable/List to the Table or Custom List in UiPath Apps. This way, even if the user searches only by Name, all the invoice details will be displayed.