Bloomerang automation · runs weekly
Merge duplicate Bloomerang constituents with AI
Bloomerang flags possible duplicates as your list changes, and the pairs wait on the Duplicate Constituents page until someone opens each and clicks Merge.
Cotlet does it in your own Bloomerang account with list_duplicates, get_constituent and merge_constituents, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Bloomerang do this on its own?
Bloomerang finds the pairs and merges each one when you click, but it does not decide which pair is safe or which record to keep (checked 22 Oct 2026). Its Zapier app has no merge action. Bloomerang says its matching is cautious on purpose, because merging records that are not true duplicates is worse than leaving duplicates.
How you do it in Bloomerang today
- An admin gets a notification when Bloomerang finds possible duplicates, and clicks it, or the link in the constituent slide-in, to reach the list.
- Each pair shows the matching criteria and the primary contact info side by side. Clicking a pair opens the details and actions.
- The admin selects the record to keep with the radio button under that constituent's name, then clicks Merge once it becomes active.
- A red strikethrough previews information that will be lost and bold green information that will be added.
- A pair that is two different people gets Not a Duplicate, which stops those two records being flagged again. A merge can also be done from a constituent profile.
How to merge duplicate Bloomerang constituents with AI
Go through the possible duplicates in Bloomerang. Merge pairs where name and email are identical, keeping the record with the most recent gift. Leave the rest for me with a one-line reason. - 01
Read the whole list
list_duplicates returns the flagged pairs with the criteria that matched. The agent follows next_cursor until the list ends, so a long backlog is judged as one batch.
- 02
Open both records
get_constituent runs for each side of a pair that passes your rule, so the decision uses the real email, address, relationship manager and latest gift, not only the name.
- 03
Apply your rule
A pair merges only if it matches your rule, such as identical name and email. Records with different addresses, different relationship managers or a household in one of them are left for you with a reason.
- 04
Pick the record to keep
The keeper is the record with the most recent gift. Whatever it lacks, such as a phone number on the other record, is added by the merge the way the Merge button does it.
- 05
Merge, then list what stays
merge_constituents runs for each approved pair and asks for your OK until you switch confirmation off for it. The pairs left over come back as a short list to dismiss or merge in the app.
What you get back
Possible duplicate pairs: 7
Merged 4 (same name and email, kept the record with the latest gift):
- Lena Ortiz: kept 48211, merged 51987
Left for you 3:
- Sam Okafor: two different street addresses
- Hill Family Trust: one record is in a household Other ways to ask
- Show me every pair with its matching criteria and my suggested keeper as a table, and merge nothing.
- Merge only pairs where both records have no gifts at all.
- Every Friday, merge the pairs that match on name and phone, and list the others.
What Bloomerang allows, and what to know first
- Bloomerang checks every record for a match whenever the constituent list changes, and admins get a notification when it finds possible duplicates.
- The Duplicate Constituents page is admin-only; standard users can review and merge duplicates by default, and removing the Data Tools permission blocks the Merge Constituents page.
- Not a Duplicate dismisses a pair for good, so those two records will not be flagged as possible duplicates again.
- The Duplicate Constituents details have a Create Household button, which puts a flagged pair into a household instead of merging it.
- In an import, Bloomerang matches duplicates by account ID, or by name plus address, phone or email.
merge_constituents asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.
Sources: Bloomerang: Real-Time Duplicate Constituent Management · Bloomerang Help: User Permissions · Bloomerang CRM release notes archive
Call merge_constituents from a script
curl -X POST https://cotlet.dev/api/v1/bloomerang/keeps/48211/constituents/merge \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"merge_id":51987}' {
"kept_id": 48211,
"merged_id": 51987,
"name": "Lena Ortiz",
"merged": true
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is bloomerang_write → merge_constituents. Example data.
Schedule it in n8n, Make, Zapier or cronBloomerang tools this automation uses
| Tool | Parameters |
|---|---|
| list_duplicates | cursor |
| get_constituent | constituent_id |
| merge_constituents | keep_id, merge_id |
Frequently asked questions
Can my agent mark a pair as Not a Duplicate?
No. It only merges the pairs that match your rule and lists the rest, so dismissing a pair stays a click in the app.
Is it safe to connect Bloomerang to Cotlet?
Yes. You sign in to Bloomerang yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Bloomerang once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to Bloomerang.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Bloomerang.