---
title: "Connect DonorPerfect and inFlow Inventory - APIANT.ai"
description: "When \"New donor\" fires in DonorPerfect, your agent runs \"Create a Sales Order\" in inFlow Inventory."
canonical: "https://apiant.ai/connect/donorperfect-to-inflow-inventory"
---

# Connect DonorPerfect and inFlow Inventory

When **New donor** fires in [DonorPerfect](https://apiant.ai/connections/donorperfect), your agent runs **Create a Sales Order** in [inFlow Inventory](https://apiant.ai/connections/inflow-inventory), or **New or Updated Customer** in inFlow Inventory to **Add contact** in DonorPerfect. Describe the whole flow and it is built, tested on every scenario and kept running.

DonorPerfect **6** triggers DonorPerfect **36** actions inFlow Inventory **10** triggers inFlow Inventory **68** actions

What the catalog holds today. Ask for anything missing and your agent reads the API documentation and adds it.

## What do you want DonorPerfect and inFlow Inventory to do together?

Give your AI client this address.

`https://mcp.apiant.ai`

One connection does both: ask your client to act in an app once, or have it build an automation that keeps running. Any client that takes a remote MCP server. Nothing to install. Create your free account, then sign in once in your browser.

### Set it up in your client

### Claude Code

Run this in the directory you want to work in.

`claude mcp add --transport http -s project apiant-ai https://mcp.apiant.ai`

Start Claude Code there, approve the server, and sign in in the browser page it opens.

[Claude Code guide (opens in a new tab)](https://apiant.ai/docs/mcp/claude-code)

### Claude, web and desktop

Open Customize, then Connectors, then Add custom connector, and paste the address. On Team and Enterprise an owner adds it first.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

### Cursor

Add the address to your MCP configuration as a server URL. Cursor signs you in in your browser.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

### Zed

Open Settings, then AI, then MCP Servers, then Add Server, then Add Remote Server.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

### Codex and the ChatGPT desktop app

Open Settings, then MCP servers, then Add server, and choose Streamable HTTP. From the terminal, Codex takes the address with its own add command and then signs you in.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

### Any other MCP client

Paste the address where the client asks for a remote MCP server URL, and name the server apiant-ai where it lets you. APIANT's skills reach the client over the same connection.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

Example flows

## What DonorPerfect and inFlow Inventory can do together

### From DonorPerfect to inFlow Inventory

- When **New donor** in DonorPerfect then **Create a Sales Order** in inFlow Inventory
- When **New gift** in DonorPerfect then **Create Customer** in inFlow Inventory

### From inFlow Inventory to DonorPerfect

- When **New or Updated Customer** in inFlow Inventory then **Add contact** in DonorPerfect
- When **New or Updated Manufacturing Order** in inFlow Inventory then **Add new donor gift by email** in DonorPerfect

Starting points drawn from the triggers and actions in the catalog today. Describe the flow you need, at any depth, and your agent builds it and tests every scenario before it ships.

Everything your agent can do with DonorPerfect and inFlow Inventory

## Triggers and actions 16 triggers · 104 actions

- Trigger

**New donor**

Polling trigger. Fires when a new donor is added in DonorPerfect. Polls the dp table ordered by donor_id descending; dedups on each record's donor_id.

- Trigger

**New gift**

Polling trigger. Fires when a new gift (donation) is created in DonorPerfect. Polls the dpgift table ordered by gift_id descending; dedups on each record's gift_id.

- Trigger

**New or updated donor**

Triggered when a donor is added or updated.

- Trigger

**New or updated gift**

Triggered when a gift (donation) is created or modified.

- Trigger

**Two-way sync new or updated donors**

A trigger for two-way syncing new and updated donors, with enhanced on-the-fly mapping. Can only be used with enhanced two-way sync actions that support on-the-fly mapping.

- Trigger

**Two-way sync new or updated gifts**

A trigger for two-way syncing new and updated gifts (donations), with enhanced on-the-fly mapping. Polls the DonorPerfect dpgift table.

- Action

**Add code**

Adds a new code and description to the DPCODES table. Allows you to add things like new GL Code, Solicitation, Campaign code and other code values administered in the Code Maintenance screen of DPO.

- Action

**Add contact**

Adds a contact (activity/task) record to a donor in DonorPerfect via the dp_savecontact stored procedure. Supply Donor Id, Activity Code, and contact details.

- Action

**Add donor**

Creates a new donor in DonorPerfect via the dp_savedonor stored procedure. Leave Donor Id empty (0) to create; the new donor_id is returned. Common fields: first/last name, address, city, state, zip, email, phones.

- Action

**Add gift**

Creates a new gift (donation) for a donor in DonorPerfect via the dp_savegift stored procedure. Supply Donor Id, Amount, Gift Date and code fields (GL, Solicit, Sub-solicit, Gift Type, Campaign).

- Action

**Add new donor gift**

Creates a new donation (gift) for the donor with the specified ID.

- Action

**Add new donor gift by email**

Creates a new donation for the donor with the specified email. The gift will only be added if the donor's email is found.

- Action

**Add new pledge**

Adds a new pledge to the specified donor. If successful, the pledge's ID is output.

- Action

**Add other info**

Adds an Other Info record to a donor in DonorPerfect via the dp_saveotherinfo stored procedure. Supply Donor Id, and optionally the date and comments.

- Action

**Add other info by email**

Adds "other info" for the first donor found with the given email address. The other info is not added if the email address is not found.

- Action

**Delete donor**

Deletes the donor with the specified Donor Id from DonorPerfect via the dp_deletedonor stored procedure.

- Action

**Find donor by first and last name**

Returns the first donor whose first and last name exactly match, plus how many donors matched

- Action

**Find filters by name**

Returns one or more filters that match the specified name. Supports wildcard matching. An empty result is returned if no matching filter is found.

- Action

**Get 20 donor field values**

Returns up to 20 field values for the specified donor. An error occurs if the donor is not found.

- Action

**Get active code by description**

Returns the code having the specified description. An error occurs if the code is not found or is inactive.

- Action

**Get active code description**

Gets the specified code's description. An error occurs if the code is not found or is inactive.

- Action

**Get code description**

Returns the description for a code value in the specified DPO code field (e.g. GL, CAMPAIGN, SOLICIT) from the dpcodes table.

- Action

**Get contact**

Returns a single DonorPerfect contact (activity) record by its contact ID, with its standard contact columns.

- Action

**Get donor**

Returns all available fields for the donor with the specified Donor ID from the DPO donor (dp) table.

- Action

**Get donor by email**

Returns the DonorPerfect donor whose email address matches the one supplied, with the donor's standard fields. Use Get donor user-defined field values for custom fields. An error occurs if no donor has that email address.

- Action

**Get donor by email, first name, and last name**

Returns all available donor fields if one or more donor matches the email, first name, and last name. No error occurs if a donor is not found, the emitted 'donor_id' will be empty instead.

- Action

**Get donor default field info**

Returns information about the specified donor field.

- Action

**Get donor default fields**

Returns all default fields for donors.

- Action

**Get donor gifts**

Returns all gifts (donations) for the donor with the specified Donor ID from the DPO dpgift table.

- Action

**Get donors by filter**

Returns the donor IDs that match the saved DPO filter with the specified Filter ID, via the dp_filterids stored procedure.

- Action

**Get donor user-defined field info**

Returns information about the specified donor user-defined field.

- Action

**Get donor user-defined fields**

Returns all user-defined donor fields.

- Action

**Get donor user-defined field values**

Returns all user-defined field values for the specified donor. An error occurs if the donor is not found.

- Action

**Get field display type**

Gets the specified field's display type, which can either be "code" or "description"

- Action

**Get flags by donor ID**

Returns the specified donor's flags. No error occurs if the donor is not found.

- Action

**Get gift**

Returns all fields for the gift (donation) with the specified Gift ID from the DPO dpgift table.

- Action

**Get gift user-defined field values**

Returns all user-defined field values for the specified gift (donation). An error occurs if the gift is not found.

- Action

**Get other info**

Returns one DonorPerfect Other Info record by its id, with its standard columns.

- Action

**List filters**

Returns the ID and name of all saved DPO filters that have non-empty names from the dpfilter table.

- Action

**Post pledge payment**

Posts a payment to the specified pledge for the specified donor.

- Action

**Set gift custom field**

Sets one of your organization's custom fields (such as Class) on an existing gift

- Action

**Update donor**

Updates an existing donor in DonorPerfect via the dp_savedonor stored procedure. Supply the Donor Id of the record to update along with the field values.

- Trigger

**New or Updated Customer**

Triggers when a customer is created or updated.

- Trigger

**New or Updated Manufacturing Order**

Triggers when a manufacturing order is created or updated.

- Trigger

**New or Updated Purchase Order**

Triggers when a purchase order is created or updated.

- Trigger

**New or Updated Purchase Quote**

Triggers when a purchase quote is created or updated.

- Trigger

**New or Updated Sales Order**

Triggers when a sales order is created or updated.

- Trigger

**New or Updated Sales Quote**

Triggers when a sales quote is created or updated.

- Trigger

**New or Updated Stock Adjustment**

Triggers when a stock adjustment is created or updated.

- Trigger

**New or Updated Stock Count**

Triggers when a stock count is created or updated.

- Trigger

**New or Updated Stock Transfer**

Triggers when a stock transfer is created or updated.

- Trigger

**New or Updated Vendor**

Triggers when a vendor is created or updated.

- Action

**Approve Purchase Order**

Approves an existing purchase order in inFlow, the same as clicking Approve in the inFlow app, and returns the updated purchase order.

- Action

**Convert Purchase Quote to Purchase Order**

Converts a purchase quote into a purchase order, the same as the Convert to order action in inFlow.

- Action

**Convert Sales Quote to Sales Order**

Converts an inFlow sales quote into a sales order, the same as the Convert to order action in inFlow.

- Action

**Create a Product**

Creates a new product in inFlow Inventory.

- Action

**Create a Sales Order**

Creates a new sales order (or sales quote) in inFlow for a customer, with optional product lines, addresses and custom fields.

- Action

**Create a Stock Adjustment**

Creates a stock adjustment

- Action

**Create a Stock Count**

Creates a stock count

- Action

**Create a Stock Count Sheet**

Creates a new stock count sheet.

- Action

**Create a Stock Transfer**

Creates a stock transfer

- Action

**Create a Vendor**

Creates a vendor

- Action

**Create Customer**

Creates a customer

- Action

**Create Manufacturing Order**

Creates a new manufacturing order

- Action

**Create Purchase Order**

Creates a purchase order

- Action

**Find a Adjustment Reason**

Finds adjustment reasons in inFlow Inventory by name.

- Action

**Find a Category**

Finds categories whose name contains the text you enter and returns the first match plus every match.

- Action

**Find a Count Sheet**

Looks up an inFlow count sheet by its ID.

- Action

**Find a Custom Document**

Finds inFlow records of the document type you choose (customers, vendors, products, sales orders, purchase orders and more) whose chosen field matches a value. Returns the first match plus every match on the first page.

- Action

**Find a Customer**

Returns the inFlow customers that match the given criteria (name, email, phone, address and more).

- Action

**Find a Location**

Returns up to 100 inFlow locations whose name contains the given text.

- Action

**Find a Manufacturing Order**

Finds manufacturing orders in inFlow by order number, status, dates, location or assignee. Returns every match plus the first matching order.

- Action

**Find a Payment Term**

Finds payment terms in inFlow whose name contains the given text.

- Action

**Find a Pricing Scheme**

Returns the pricing schemes whose name contains the specified text.

- Action

**Find a Product**

Returns up to 100 inFlow products matching the name, barcode, description, smart search text or other filters supplied.

- Action

**Find a Purchase Order**

Finds purchase orders by order number or other filters and returns the matches.

- Action

**Find a Sales Order**

Search for the details of a sales order by a Sales Order ID or Sales Order Number.

- Action

**Find a Stock Adjustment**

Search for the details of a Stock Adjustment by a Stock Adjustment ID or Stock Adjustment Number.

- Action

**Find a Stock Count**

Search for the details of a Stock Count by a Stock Count ID or Stock Count Number.

- Action

**Find a Stockroom Scan**

Finds stockroom scans by scan number. inFlow has deprecated this endpoint; newer scans are recorded as stock adjustments.

- Action

**Find a Stock Transfer**

Search for the details of a Stock Transfer by a Stock Transfer ID or Stock Transfer Number.

- Action

**Find a Taxing Scheme**

Search for the details of a taxing scheme by Name.

- Action

**Find a Vendor**

Finds inFlow vendors matching name, contact, email, phone, address or other filters, returning the first match and the full list.

- Action

**Find or Create a Customer Document**

Finds a customer whose name exactly matches the given name; if none exists, creates one with the supplied details. Returns the customer record either way.

- Action

**Find or Create a Manufacturing Order Document**

Searches for a manufacturing order document by document type.

- Action

**Find or Create a Product**

Returns the product with exactly the given name, creating it first if no such product exists.

- Action

**Find or Create a Purchase Order Document**

Searches for a purchase order document by document type.

- Action

**Find or Create a Sales Order Document**

Looks up a sales order by its order number and returns it; if no order has that number, creates a new sales order with it.

- Action

**Find or Create a Stock Adjustment Document**

Searches for a stock adjustment document by document type.

- Action

**Find or Create a Stock Count Document**

Searches for a stock count document by document type.

- Action

**Find or Create a Stock Transfer Document**

Searches for a stock transfer document by document type.

- Action

**Find or Create a Vendor**

Searches for a vendor by ID or name and creates a new vendor if it doesn't exist.

- Action

**Find or Create a Vendor Document**

Searches for a vendor document by document type.

- Action

**Find or Create Customer**

Finds a customer by exact name; if none exists, creates one with the supplied details.

- Action

**Find or Create Customer by Email**

Looks up an inFlow customer by exact email address and returns it; if none exists, creates a new customer with that email.

- Action

**Find or Create Vendor by Email**

Searches for a vendor by Email and/or name and creates a new vendor if it doesn't exist.

- Action

**Fulfill Purchase Order**

Marks every line of a purchase order as received and adds the corresponding stock, the same as the Fulfill button in inFlow.

- Action

**Fulfill Sales Order**

Quick-fulfills a sales order in one step.

- Action

**Invoice Sales Order**

Quick-invoices a sales order.

- Action

**List Customers**

Returns all customers in the inFlow account, with pagination.

- Action

**List Locations**

Lists the locations (warehouses, stores) in your inFlow account.

- Action

**List Manufacturing Orders**

Lists manufacturing orders in inFlow, optionally filtered by number, status, dates, location or assignee. Returns up to 100 orders.

- Action

**List Products**

Lists products in inFlow, optionally filtered by name, description, barcode, type, category, lot tracking, modification date or a smart search. Returns up to 100 products.

- Action

**List Purchase Orders**

Returns all purchase orders, with pagination.

- Action

**List Sales Orders**

Returns all sales orders, with pagination.

- Action

**List Stock Counts**

Returns all stock counts, with pagination.

- Action

**List Vendors**

Returns all vendors in the inFlow account, with pagination.

- Action

**Pay Sales Order**

Marks an inFlow sales order as paid, the same as the Mark paid button in inFlow.

- Action

**Ship Sales Order**

Marks a sales order as quick-shipped (final fulfillment step).

- Action

**Update a Manufacturing Order**

Updates an existing manufacturing order by ID. Only the fields you fill in are changed.

- Action

**Update a Product**

Updates a product given their ID.

- Action

**Update a Purchase Order**

Updates an existing purchase order in inFlow by ID. Only the fields you fill in are changed.

- Action

**Update a Sales Order**

Updates a sales order given their ID.

- Action

**Update a Stock Adjustment**

Updates a stock adjustment given their ID.

- Action

**Update a Stock Count**

Updates a stock count given their ID.

- Action

**Update a Stock Count Sheet**

Updates a stock count sheet.

- Action

**Update a Stockroom Scan**

Updates a stockroom scan in inFlow. inFlow marks this endpoint deprecated; new scans are stored as stock adjustments.

- Action

**Update a Stock Transfer**

Updates a stock transfer given their ID.

- Action

**Update Customer**

Updates a customer given their ID.

- Action

**Update Vendor**

Updates an existing vendor by ID. Fields left blank keep their current values.

## Each app on its own

- [ **DonorPerfect** DonorPerfect Online (DPO) is fundraising and donor-management software for nonprofits.](https://apiant.ai/connections/donorperfect)
- [ **inFlow Inventory** inFlow Inventory is an inventory and order management system for businesses that outgrow spreadsheets.](https://apiant.ai/connections/inflow-inventory)

Reviews

## What our customers say

## More from DonorPerfect

- [ **DonorPerfect to HubSpot** HubSpot is your all-in-one stop for all of your marketing software needs.](https://apiant.ai/connect/donorperfect-to-hubspot)
- [ **DonorPerfect to Salesforce** Salesforce is a leading enterprise customer relationship management (CRM) platform.](https://apiant.ai/connect/donorperfect-to-salesforce)
- [ **DonorPerfect to Slack** Slack is a messaging platform for teams. Post messages, manage channels, users, reminders, and react to...](https://apiant.ai/connect/donorperfect-to-slack)
- [ **DonorPerfect to Mailchimp** Mailchimp marketing automation and email platform.](https://apiant.ai/connect/donorperfect-to-mailchimp)
- [ **DonorPerfect to Shopify** Shopify is a commerce platform for online stores and retail point-of-sale.](https://apiant.ai/connect/donorperfect-to-shopify)
- [ **DonorPerfect to QuickBooks Online** QuickBooks Online accounting — manage customers, invoices, bills, payments, vendors, expenses, and more via...](https://apiant.ai/connect/donorperfect-to-quickbooks-online)

## More into inFlow Inventory

- [ **HubSpot to inFlow Inventory** HubSpot is your all-in-one stop for all of your marketing software needs.](https://apiant.ai/connect/hubspot-to-inflow-inventory)
- [ **Google Sheets to inFlow Inventory** Google Sheets is Google's online spreadsheet app for creating, editing and sharing spreadsheets.](https://apiant.ai/connect/google-sheets-to-inflow-inventory)
- [ **Gmail to inFlow Inventory** Gmail is Google’s email service, featuring spam protection, search functions, and seamless integration with...](https://apiant.ai/connect/gmail-to-inflow-inventory)
- [ **Google Calendar to inFlow Inventory** Google Calendar is a time management tool providing scheduling features, event reminders, and integration...](https://apiant.ai/connect/google-calendar-to-inflow-inventory)
- [ **Google Drive to inFlow Inventory** Google Drive is a cloud storage solution for uploading, sharing, and collaborating on files across devices...](https://apiant.ai/connect/google-drive-to-inflow-inventory)
- [ **ActiveCampaign to inFlow Inventory** ActiveCampaign is a marketing automation, email marketing, and CRM platform.](https://apiant.ai/connect/activecampaign-to-inflow-inventory)

Questions

## DonorPerfect and inFlow Inventory, answered

###

### What can start an automation from DonorPerfect?

Any of DonorPerfect's 6 triggers in the catalog, including New donor, New gift, New or updated donor and New or updated gift. Describe the moment in plain language and your agent picks the right one.

###

### What can your agent do in inFlow Inventory when something happens in DonorPerfect?

Any of inFlow Inventory's 68 actions, including Create a Product, Create a Sales Order, Create a Stock Adjustment and Create a Stock Count. Your agent maps the data both ways and tests every scenario before it ships.

###

### Can it also run from inFlow Inventory to DonorPerfect?

Yes. When something happens in inFlow Inventory, your agent can act in DonorPerfect too. This page covers both directions: inFlow Inventory's triggers and DonorPerfect's actions are listed here as well.

###

### Do I have to build a connector for DonorPerfect or inFlow Inventory?

No. Both are in the catalog with their triggers and actions. You describe the automation; your agent builds it, tests every scenario and keeps it running.

###

### Can my AI client use DonorPerfect and inFlow Inventory without building an automation?

Yes. With your AI client connected to APIANT, ask it to do something in either app once and it runs that action on the spot. Ask for an automation and your agent builds it, tests every scenario and keeps it running. One connection covers both.

###

### What happens when something fails?

Your agent works that out for you. It plans the failure paths along with the happy path, then tests every scenario before it ships.

###

### Is there a free plan?

Yes. Every plan includes the agent, including free, and building from your own AI client spends no assistant credits.
