When working with SharePoint lists, duplicate records can become an issue, especially when managing multiple entries like support tickets, employee onboarding, or customer information. These duplicates can lead to confusion and errors in your workflows. To avoid this, we must check if an item exists before creating a new one.
In this tutorial, I’ll show you how to check if an item exists in a SharePoint list using Power Automate, whether you’re managing support tickets or tracking employee onboarding.
Check if an Item Exists in a SharePoint list Using Power Automate
Check the two examples below to learn how to verify if an item exists in a SharePoint list using Power Automate.
Example – 1: [Verifying if a Support Ticket Exists in Power Automate]
Imagine you have a SharePoint list called “Support Tickets” to track customer issues. Before Creating an item, I want to check if there’s a ticket with the same Client Name, Issue Type, and Today’s Date. If it exists, the flow sends a notification to the user and stops. If it doesn’t exist, it creates a new item.

Before I explain how to create a flow, you must create a Microsoft Form.

Now follow the below steps:
1. Create an automated cloud flow with a trigger When a new response is submitted. Then, Provide From Id.

2. Next, Add the Get response details action to retrieve the responses submitted in the Form. Provide the below parameters:
- Form Id: From the dropdown, select the Form Id.
- Response Id: Choose the Response Id from dynamic content.

2. Add the Get items action and provide the below parameters to fetch items from the SharePoint list:
- Site Address: Select your SharePoint site.
- List Name: Choose Support Tickets.
- Filter Query: Use the below query to check for an existing ticket:
ClientEmail eq '@{outputs('Get_response_details')?['body/r083cde5fb2c5465f97d2016c53d5e37e']}' and IssueType eq '@{outputs('Get_response_details')?['body/r4cb541ae883948cfafb5448211994c9a']}'The Get items action will check if the same Client Email and Issue Type exists. If they do, it will retrieve the existing ticket.

3. Then add a Filter Array action and provide the below parameters to filter only today’s record:
- From: Select body/value from dynamic content of the Get items.
- Condition:
- Left Value: formatDateTime(item()?[‘Created’],’yyyy-MM-dd’)
- Operator: is equal to
- Right Value: formatDateTime(utcNow(),’yyyy-MM-dd’)

4. Then add a Condition action to check the result of the Filter array action. Add below condition:
length(body('Filter_array')) is greater than 0
5. In the True Section, add a Send an email (V2) action to Notify the user.

6. In the False Section, add a Create item action and provide below parameters:
- Site Address: Select your SharePoint site.
- List Name: Choose Support Tickets.
Expand Advanced parameters and add below:
| Client Name | @{outputs(‘Get_response_details’)?[‘body/r107b0d7db8b74387bb5349f11647a384’]} |
| Client Email | @{outputs(‘Get_response_details’)?[‘body/r083cde5fb2c5465f96d2016c53d5e37e’]} |
| Power Platform Value | @{outputs(‘Get_response_details’)?[‘body/r225755b4f6f6427b8b11f9873655020b’]} |
| Issue Type Value | @{outputs(‘Get_response_details’)?[‘body/r4cb541ae883947cfafb5448211994c9a’]} |
| Issue Description | @{outputs(‘Get_response_details’)?[‘body/re721cedb943945cfb0270e45be9bae16’]} |
| Priority Value | @{outputs(‘Get_response_details’)?[‘body/r9dbe9492c520413aaff1f574b1e4899c’]} |
| Status Value | Open |
I created another flow for the Ticket ID with the help of Generate a Unique ID for a SharePoint List item Using Power Automate Post.

7. After that, add send an email (V2) action as below:

Let’s save the flow and test it manually. Then, submit a response to the Microsoft Form with the same details in the SharePoint list.

When the flow runs successfully, go to the SharePoint list, and you will see that the item has not been created. Then, the client will receive an email.

Example – 2 :[Employee Onboarding Tracking using Power Automate]
Imagine you are managing a company’s onboarding process using a SharePoint list named Employee Onboarding Tracker. Every time a new employee joins, their details, such as Employee ID, Email Address, and Contact Number, must be added to this list.

The HR team sometimes accidentally enters duplicate records, which leads to confusion and inefficiency. To solve this problem, i want to create a Power Automate flow that:
- Checks if an employee already exists in the list based on Employee ID, Email Address, or Contact Number.
- Prevents duplicates by notifying HR if the employee is already in the system.
- Adds new employees to the list only if they don’t already exist.
- Sends a confirmation email to HR for both cases (whether the employee already exists or has been added successfully).
Follow the below steps:
1. Create an Instant Cloud Flow and select the Manual Trigger option.
Add below input fields:
- Employee ID (Text)
- Employee Name (Text)
- Position (Text)
- Date of Joining (Date and Time)
- Contact Number (Number)
- Employee Email Address (Email)

2. Add a Get Items action and provide Site Address and List Name (Employee Onboarding Tracker).
Use the Filter Query to check for duplicate records based on the unique fields:
EmployeeID eq '@{triggerBody()?['text']}' or EmployeeEmailAddress eq '@{triggerBody()?['email']}' or ContactNumber eq '@{triggerBody()?['number']}'This checks if an item already exists based on the provided Employee ID, Email Address, or Contact Number.

3. Add a Condition action to check if the length of the retrieved items is equal to 0:
length(outputs('Get_items')?['body/value']) is equal to 0
4. In the true section, add Creat item action and provide the below parameters:

5. Add a Send an email (V2) action to notify the HR team by email that the record already exists:

Run the flow with inputs for an existing Employee ID, Email Address, or Contact Number.

After the flow runs successfully, it notifies HR that the employee already exists and prevents creating a duplicate record.

Conclusion
This tutorial explored two practical examples of using Power Automate to check if an item exists in a SharePoint list. The first example learned how to verify if a support ticket with the same client email, issue type, and today’s date exists before creating a new item, ensuring no duplicate tickets are added.
The second example showed how to manage employee onboarding by checking for duplicate records based on Employee ID, Email Address, or Contact Number and notifying HR if duplicates are found, allowing new records to be added only when they don’t exist.
You may also like:
- Check If a String is Empty in Power Automate
- Get More Than 100 Items Using The Get Items Action in Power Automate
- Check If a row exists in Excel using Power Automate
- Check if a String Contains Numbers in Power Automate
- Check If an array Contains a Value using Power Automate
- Check if a field exists in SharePoint Using Power Automate

After working for more than 18 years in Microsoft technologies like SharePoint, Microsoft 365, and Power Platform (Power Apps, Power Automate, and Power BI), I thought will share my SharePoint expertise knowledge with the world. Our audiences are from the United States, Canada, the United Kingdom, Australia, New Zealand, etc. For my expertise knowledge and SharePoint tutorials, Microsoft has been awarded a Microsoft SharePoint MVP (12 times). I have also worked in companies like HP, TCS, KPIT, etc.
hello, if i want yo make this but the trigger is when an item is created on a list/file library, what changes do i have to make? i tried to do the exact steps changing the trigger but nothing happens