Sharing my AI builder notes summary Proof of Concept
I’m excited to explore the different AI Builder models to see how they may have practical applications for nonprofit organizations. See my Birthday Campaigns with AI Builder as another example.
Problem statement: End users often don’t take the time to read through Action history before engaging with a donor or prospect
Solution: AI tools could be used to create a plain text summary of Actions and Action Notes
Workflow design:
This flow uses the Trigger a flow from a SKY Add-in button template for Power Automate.
Category: Automation
Required connections:
- Raiser’s Edge NXT Constituents
- Raiser’s Edge NXT Interactions
- Blackbaud SKY Add-ins
- Approvals
- Dataverse/ AI Builder
- Content Conversion
- Microsoft Outlook (Gmail could be substituted)
Steps:
- End-user requests an Action Notes Summary from the Constituent record in Raiser’s Edge NXT.

- End-user receives a Toast message that their request has been received
- Actions are filtered to those in the last 6 months and sorted descending based on Action Date
- Action details are analyzed by AI builder and summarized
- The Action Summary is emailed to the requester
- A Constituent Note is created with the Action Summary
Configuration updates:
- For information on how to create a SKY Add-in to invoke a flow, see this tutorial. And check out @Ashley Moose's handy SKY Add-in URL Builder.
- You may want to change the date range of Actions that are analyzed. Edit the ‘Filter array – only include Actions in the last 6 months from the run time’ to the required number of days.

- Update your Create a constituent note Type for where you want the Note saved
AI Builder learnings:
- Microsoft requires you to insert an Approval step after the ‘Create text with GPT using a prompt’ action. However, you can set that Approval to timeout after a minute and not send a notification. By ‘configuring run after’ to also include ‘is skipped’ and ‘has timed out’ the flow will continue without the approval. Since this summary is not being viewed by the donor (like text generated in an acknowledgement), I was ok with foregoing the approval.
- The AI Builder model for “Summarize text” is geared towards longer form documents. When I entered sample Action Notes that were at least 50 words, the summary worked well. When there wasn’t enough data in the Action Notes, I received a friendly response that “I'm sorry, but the text provided is too short to generate a meaningful summary.” Therefore, you will likely want to update the flow to only include specific action types or actions where there are notes. If you store donor profile files as attachments or in SharePoint as PDFs these could also be included for analysis.
Thank you to @Glen Hutson for the assist with troubleshooting.
Comments
-
@Heather McLean I have configured approval to 'is skipped" but it still does not work.
I am missing something else? Thanks…Bob
1 -
@Bob Rickards - also check “has timed out”. Let me update my post.
1 -
@Heather McLean Yeah..still not working. ‘Start and wait on approval’ gives me:
“ActionTimedOut. The workflow action 'Start_and_wait_for_an_approval' timed out while waiting for webhook callback.”
Is there another piece we are missing? Love this concept by the way. You could create a gift summary or profile summary. Great stuff!
1 -
@Bob Rickards
hmm, this looks odd. I don't see any reason why you would want to “configure run after” for a “compose” action that 99% of time should be successful (unless the compose uses expression that has error, which should be fixed instead of using configure run after.I will load this flow and check it out when i got some time later
1 -
@Bob Rickards
Ok, so I loaded the flow, a few things to note:- After the Compose - convert array to string and sort descending based on recency action, it is the action Create text with GPT using a prompt, which Configure run after is not needed.
- In case you are not familiar with Configure run after, your screenshot suggest that you are trying to change configure run after on the Create text with GPT using a prompt, which is looking at the previous action's result to see if itself will run or not,
- @Heather McLean after importing the flow, I see that the action Send an email (V2) that contains the summary has configure run after “is successful” and “has timed out”. Which I dont' know if that's really what you want to do here. Basically this means, if the request to approve the GPT generated text was “timed out” (the “approver” never approved), an email with the generated text should still be emailed, does not sound right.
- Actually, the way your flow is now, even if the approver rejected the approver, an email with the generated text still goes out too
@Bob Rickards before messing with configure run after, what issue were you having (error message from flow run), let's fix that.
1 - After the Compose - convert array to string and sort descending based on recency action, it is the action Create text with GPT using a prompt, which Configure run after is not needed.
-
In general for an approval, there are a few situation you have to take into consideration (assuming you did not change the “Approval type” to custom response):
- Time out - approver never touched the approval request
- requestor (if specified) cancel the request
- approver click Approve
- approver click Reject
Meaning, you need an action added as parallel branch, and that action needs to have “timed out” as configure run after.
then you need an action (I use switch) that condition on the “button” being clicked (cancel result in blank Approval Outcome, which goes into the “Default” switch case, other 2 switch case is Approve and Reject.
1 -
@Alex Wong Ok…i made the change…but here is what has been happening.
It seems to skip the approval and says the email was completed yet I do not get an email nor does it update the actions list after that.
1 -
@Bob Rickards
go to the approval 3-dots… click on setting, remove the string there for time out. Normal approval time out is 30 days (or was it 28 i forgot now).currently, it is PT1M, meaning the approval action will time out after 1 minute.
2nd problem, the email action will execute as it has configure run after time out also, and your result show it was executed, so why did you not get email is the question, open the email action and check the info in it, what email address was sent to will be shown.
1 -
@Alex Wong Ok…made the changes you suggested. I Also went to the power automate approval section to approve the process. (we need to find a work around as no one wants to sit and approve all these requests) I still did not get an email or have an action added.
It does have my email and the email is correct.
1 -
I got this flow loaded and ran it and found the following issue that @Heather McLean can fix in the template:
- UNLESS your intention is actually for no one to approve the request, let it quickly time out and do the rest of the work of sending the email and recording the constituent action. Then you might just want to do PT1S (1 second timeout)
- OTHERWISE
- Approval setting - PT1M - 1 minute time out is way too short
- Approval Enable notification = No means no email or team notification that there's approval to approve, should do Yes on this
- previously mentioned action “pathing” where you take care of when the request timed out, when request is rejected or cancelled, and when it is approved.
- putting the AI generated text as “Item link” is not good. item link and item description is like you have a cloud document (i.e. sharepoint) and you want to link it with the approval for the approver to click to see. the information from the AI generated text should be in the Details section (unforunately, Details do not take HTML code, it takes “Markdown”, so get rid of the AI generation of HTML, just plain text is fine.
some screenshot of my run:
approval email after approval action created on constituent after all is done 1 - UNLESS your intention is actually for no one to approve the request, let it quickly time out and do the rest of the work of sending the email and recording the constituent action. Then you might just want to do PT1S (1 second timeout)
-
As for the email that you trying to use HTML. I'm going to assume that's b/c the AI generated text has “paragraph” (new line character) that isn't “displayed nicely” in the email. There are a few things you can do to handle this, one is using a <pre> HTML tag.
this will preserve the “paragraphing”
OR you can simply send a plain text email, not HTML email.
1 -
- My intention is this flow was for No one to approve the request. Since this isn't donor facing content, it is clearly designed for personal use, and is marked as AI Generated, I felt the approval step was meddlesome to the process.
- If you want to see an example of more complex approvals of donor-facing AI content, please look at my Birthday campaign example.
- In my tests the HTML presented the text in the final email well formatted, but then it didn't look great in saving of the action/ note. That's why I used the HTML to plain text action to just revert it back before saving there.
1 -
@Heather McLean
Understood.The only issue here would be the approval itself. A timed out request will still show up in the approval section of Teams as “Requested” status and will not go away due to the time out, this can quickly become a “confusion" factor. I understand that you are trying to satisfy the Power Automate requirement of having an approval action right after GPT generated text, then have the approver be a “service” account where no one will login and use.
As for the remaining steps that @Bob Rickards is having issue with, you don't need to change the approval steps or configure run after differently from when it was imported from template. it should work as-is (though as the Approval is meant to time out, having configure run after (on the “send an email” action), you really only need the “time out” checkbox checked, but that's minor, and won't hurt anything to keep the “success” checkbox checked. If your email action is successful, you definitely should have the email in your inbox. If you still don't find it, check the email connector to see which account the email is coming from and let your IT team know to do a message trace on the email. If your constituent action step is successful (I haven't seen a screenshot of that action to know if it succeed or failed), then the constituent record will have the action created. If you are not getting, will have to dig into the “output” of the action to see why.
1
Categories
- All Categories
- 6 Blackbaud Community Help
- High Education Program Advisory Group (HE PAG)
- BBCRM PAG Discussions
- Luminate CRM DC Users Group
- DC Luminate CRM Users Group
- Luminate PAG
- 186 bbcon®
- 1.4K Blackbaud Altru®
- 389 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- 14 donorCentrics®
- 355 Blackbaud eTapestry®
- 2.4K Blackbaud Financial Edge NXT®
- 616 Blackbaud Grantmaking™
- 542 Blackbaud Education Management Solutions for Higher Education
- 33 Blackbaud Impact Edge™
- 3.1K Blackbaud Education Management Solutions for K-12 Schools
- 909 Blackbaud Luminate Online® and Blackbaud TeamRaiser®
- 207 JustGiving® from Blackbaud®
- 6.2K Blackbaud Raiser's Edge NXT®
- 3.5K SKY Developer
- 236 ResearchPoint™
- 116 Blackbaud Tuition Management™
- 375 YourCause® from Blackbaud®
- 160 Organizational Best Practices
- 232 The Tap (Just for Fun)
- 31 Blackbaud Community Challenges
- Blackbaud Consultant’s Community
- 19 PowerUp Challenges
- 3 Raiser's Edge NXT PowerUp Challenge: Gift Management
- 4 Raiser's Edge NXT PowerUp Challenge: Events
- 3 Raiser's Edge NXT PowerUp Challenge: Home Page
- 4 Raiser's Edge NXT PowerUp Challenge: Standard Reports
- 4 Raiser's Edge NXT PowerUp Challenge #1 (Query)
- 71 Blackbaud Community All-Stars Discussions
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- 743 Community News
- 2.8K Jobs Board
- Community Help Blogs
- 52 Blackbaud SKY® Reporting Announcements
- Blackbaud Consultant’s Community
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)
- Blackbaud Francophone Group
- Blackbaud Community™ Discussions
- Blackbaud Francophone Group