Cleaning up Hard credits and Soft credits

Hi everyone,

I’m currently working on a cleanup project and could use your insights. Background:
In the past(only for couple of years), organizational gifts were recorded as hard credits to individuals and soft credits to organizations for simplified reporting. We now need to reverse this setup (assign hard credits to organizations and soft credits to individuals). Below is the project plan

3d87c2e51a7573be6d1fe876160d087b-huge-im

Progress So Far:
I’ve built a Python script using Selenium that automates Steps 1-3 of the project plan. It reads input from an Excel file and executes tasks up to Step 3. I’ve tested it through Step 2 and I am confident it works for Step 3.
Challenge with Step 4:
Step 4 requires converting individual records into organization records. Unfortunately: The web interface doesn’t support this conversion. There’s no API available for this action. The only manual workaround is modifying the Hold_RECORD field directly in the database to flag it as an organization.

Manual intervention would undermine the automation effort.

fc28fc00d475580035873f2fefb9ebee-huge-im

Any suggestions or experiences would be greatly appreciated!
Thank you!

Project_Plan.png

Comments

  • Alex Wong
    Alex Wong Community All-Star
    Ninth Anniversary Kudos 5 Facilitator 3 bbcon 2025 Attendee Badge

    @Venky Immadisetty
    Your plan's image is very blurry, this is not on you, Community image handling is bad.

    Since I can't see what your Step 1-3 are, can't really comment on the rest of what you trying to do (step 4).

    Depending on how many gifts need to fix, you may be better handing this manually OR wait until more gift api is available ~Q2.

    RE NXT you can “move” a gift from a constituent to another (although you can only move form individual to individual, org to org, so using a “transitioning" record that you use converting back and forth is one method.

    It is unlikely BB will come out with “convert” between ind and org API endpoint, at least I haven't heard anything in recent PUB or in roadmap.

    It might be easily if Blackbaud come out with API endpoint that MOVE gift from one constituent to another (AND that move between ind and org is allowed), AND have another API endpoint that allow PATCH (editing) of gift soft credit.

    @Anthony Gallo is the above API something in the work for Q2?

  • Anthony Gallo
    Anthony Gallo Blackbaud Employee
    Tenth Anniversary Kudos 3 Name Dropper Participant

    @Alex Wong
    We don't have specific gift API improvements planned for Q2. I can see where we have more in Q3 when we work on the edit gift gaps (gift and marketing code tile). We currently do not have plans to do the gift move via API, so I would make sure we have that in our idea bank for tracking purposes.

  • @Alex Wong
    Below attached is the project plan

    Project_Plan.png

  • Alex Wong
    Alex Wong Community All-Star
    Ninth Anniversary Kudos 5 Facilitator 3 bbcon 2025 Attendee Badge

    @Venky Immadisetty
    Hi, even if you “link” it.. since the image you link is already the “blurred-down" version of the image, it comes up blurr. You will either have to “host” this image somewhere else that can be publicly accessed or just copy and paste the “text” of your steps

  • @Alex Wong
    Here is the image hosted link. https://postimg.cc/bD71q0Vt
    upon opening the link there is an option to zoom
    Thanks!


  • Alex Wong
    Alex Wong Community All-Star
    Ninth Anniversary Kudos 5 Facilitator 3 bbcon 2025 Attendee Badge

    @Venky Immadisetty
    yes, the image is clear now.

    Your original post said you built a python script to automate step 1-3, which i'm not familiar with. I'm assuming you are not using SKY API as SKY API doesn't have endpoint to “move/transfer” a gift. So my assumption is your script is like a “robot” that automates user interaction (i.e. “clicking” and user typing) within the RE NXT browser window (similar to Power Automate Desktop). Since you can move/transfer gift on the RE NXT webview gift page.

    However, since there is no RE NXT gift/constituent page function to convert org>ind or vice versa, your script can't do this.

    So what I would suggest is (not sure if Python script through Selenium is only “browser” automation, but if it is not specific to browser, and can automate full desktop user interaction, you can automate step to convert constituent record by opening up RE NXT dbview, which has the function to convert.

  • @Alex Wong
    Thank you for your insights and suggestions!

    To clarify, my Python script uses Selenium to automate browser-based interactions (e.g., locating elements, clicking buttons, and completing steps 1-3) within the RE NXT web interface. However, as you noted, it is limited to browser automation and cannot interact with desktop applications like RE NXT dbview.

    Your point about converting constituent records via the RE NXT dbview function makes sense. While my current script cannot automate desktop interactions,

    Thank you again for your guidance. It is greatly appreciated!

  • @Venky Immadisetty

    As Alex mentioned, the limitation of gifts moving from Individual records to orgs makes this it all a challenge. You could get all the records into a query, then use AutoHotkey script to go through the query output to do the converting. Citrix and AutoHotkey don't always work the best together.

    Depending on the amount of data points on the gifts and constituent records. You could instead use step 3 to be an array to store gift info and record info. Then use the array as an input for python to loop through to POST them back via SKY API or instead of the API, have pandas convert the array to csv that can import using dbview. Create(instead of converting) the org record, then import the gifts.