---
title: Givebutter API Integration on Truto
slug: givebutter
category: CRM
canonical: "https://truto.one/integrations/detail/givebutter/"
---

# Givebutter API Integration on Truto



**Category:** CRM  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 70 tools for Givebutter that AI agents can call directly.

- **create_a_givebutter_campaign_discount_code** — Create a discount code. Required: campaign_id, type, active, amount, code.
- **delete_a_givebutter_campaign_discount_code_by_id** — Delete a discount code. Required: id, campaign_id.
- **get_single_givebutter_campaign_discount_code_by_id** — Get a discount code. Required: id, campaign_id.
- **list_all_givebutter_campaign_discount_codes** — List all discount codes. Required: campaign_id. Truto pages through all results (100 per page, or your limit up to 100).
- **update_a_givebutter_campaign_discount_code_by_id** — Update a discount code. Required: id, campaign_id, amount.
- **delete_a_givebutter_campaign_member_by_id** — Delete a campaign member. Required: id, campaign_id.
- **get_single_givebutter_campaign_member_by_id** — Get a campaign member. Required: id, campaign_id.
- **list_all_givebutter_campaign_members** — List all campaign members. Required: campaign_id. Truto pages through all results (100 per page, or your limit up to 100).
- **delete_a_givebutter_campaign_team_by_id** — Delete a campaign team. Required: id, campaign_id.
- **get_single_givebutter_campaign_team_by_id** — Get a campaign team. Required: id, campaign_id.
- **list_all_givebutter_campaign_teams** — List all campaign teams. Required: campaign_id. Truto pages through all results (100 per page, or your limit up to 100).
- **create_a_givebutter_campaign_ticket** — Create a campaign ticket. Required: campaign_id, name, price.
- **get_single_givebutter_campaign_ticket_by_id** — Get a campaign ticket. Required: id, campaign_id.
- **list_all_givebutter_campaign_tickets** — List all campaign tickets. Required: campaign_id. Truto pages through all results (100 per page, or your limit up to 100).
- **create_a_givebutter_campaign** — Create a campaign. Required: type, title.
- **delete_a_givebutter_campaign_by_id** — Delete a campaign. Required: id.
- **get_single_givebutter_campaign_by_id** — Get a campaign. Required: id.
- **list_all_givebutter_campaigns** — List all campaigns. Truto pages through all results (100 per page, or your limit up to 100).
- **update_a_givebutter_campaign_by_id** — Update a campaign. Required: id.
- **create_a_givebutter_contact_activity** — Create a contact activity. Required: contact_id, type.
- **delete_a_givebutter_contact_activity_by_id** — Delete a contact activity. Required: id, contact_id.
- **get_single_givebutter_contact_activity_by_id** — Get a contact activity. Required: id, contact_id.
- **list_all_givebutter_contact_activities** — List all contact activities. Required: contact_id. Truto pages through all results (100 per page, or your limit up to 100).
- **update_a_givebutter_contact_activity_by_id** — Update a contact activity. Required: id, contact_id.
- **givebutter_contact_tags_bulk_delete** — Remove tags from a contact. Required: contact_id, tags. Removes the listed tags (POST .../tags/remove); the others stay.
- **givebutter_contact_tags_bulk_update** — Sync tags for a contact. Required: contact_id, tags. Replaces the contact's whole tag set with exactly these tags (POST .../tags/sync); others are removed.
- **create_a_givebutter_contact_tag** — Add tags to a contact. Required: contact_id, tags. Adds the listed tags (POST .../tags/add); the contact's other tags stay.
- **create_a_givebutter_contact** — Create a contact.
- **delete_a_givebutter_contact_by_id** — Delete a contact. Required: id.
- **get_single_givebutter_contact_by_id** — Get a contact. Required: id.
- **list_all_givebutter_contacts** — List all contacts. Truto pages through all results (100 per page, or your limit up to 100).
- **givebutter_contacts_restore** — Restore a contact. Required: contact_id.
- **update_a_givebutter_contact_by_id** — Update a contact. Required: id. Sending tags replaces the contact's whole tag set; leave tags out to keep them.
- **create_a_givebutter_fund** — Create a fund. Required: name.
- **delete_a_givebutter_fund_by_id** — Delete a fund. Required: id.
- **get_single_givebutter_fund_by_id** — Get a fund. Required: id.
- **list_all_givebutter_funds** — List all funds. Truto pages through all results (100 per page, or your limit up to 100).
- **update_a_givebutter_fund_by_id** — Update a fund. Required: id, name.
- **create_a_givebutter_household_contact** — Add a contact to a household. Required: household_id, contact_id.
- **delete_a_givebutter_household_contact_by_id** — Remove a contact from a household. Required: id, household_id.
- **get_single_givebutter_household_contact_by_id** — Get a contact associated with a household. Required: id, household_id.
- **list_all_givebutter_household_contacts** — List all contacts associated with a household. Required: household_id. Truto pages through all results (100 per page, or your limit up to 100).
- **create_a_givebutter_household** — Create a household. Required: name.
- **delete_a_givebutter_household_by_id** — Delete a household. Required: id.
- **get_single_givebutter_household_by_id** — Get a household. Required: id.
- **list_all_givebutter_households** — List all households. Truto pages through the results (page by page; your limit sets per_page, up to 100).
- **update_a_givebutter_household_by_id** — Update a household. Required: id.
- **get_single_givebutter_message_by_id** — Get a message. Required: id.
- **list_all_givebutter_messages** — List all messages. Truto pages through all results (100 per page, or your limit up to 100).
- **get_single_givebutter_payout_by_id** — Get a payout. Required: id.
- **list_all_givebutter_payouts** — List all payouts. Truto pages through all results (100 per page, or your limit up to 100).
- **get_single_givebutter_pledge_by_id** — Get a pledge. Required: id.
- **list_all_givebutter_pledges** — List all pledges. Truto pages through all results (100 per page, or your limit up to 100).
- **get_single_givebutter_recurring_plan_by_id** — Get a recurring plan. Required: id.
- **list_all_givebutter_recurring_plans** — List all recurring plans. Truto pages through all results (100 per page, or your limit up to 100).
- **list_all_givebutter_sso_accounts** — Get the Givebutter account behind the SSO session (GET /sso/v1/account; no description in Givebutter's docs). /sso/v1 sits behind a different auth guard than /v1 (a call without a key answers "Unauthenticated.").
- **get_single_givebutter_sso_campaign_by_id** — Get a campaign through the SSO API (GET /sso/v1/campaigns/{campaign}; no description in Givebutter's docs). Required: id. /sso/v1 sits behind a different auth guard than /v1 (a call without a key answers "Unauthenticated.").
- **get_single_givebutter_ticket_by_id** — Get a ticket. Required: id.
- **list_all_givebutter_tickets** — List all tickets. Truto pages through all results (100 per page, or your limit up to 100).
- **create_a_givebutter_transaction** — Create a transaction. Required: method, transacted_at, amount.
- **get_single_givebutter_transaction_by_id** — Get a transaction. Required: id.
- **list_all_givebutter_transactions** — List all transactions. Truto pages through all results (100 per page, or your limit up to 100).
- **update_a_givebutter_transaction_by_id** — Update a transaction. Required: id.
- **get_single_givebutter_webhook_activity_by_id** — Get a webhook activity. Required: id, webhook_id.
- **list_all_givebutter_webhook_activities** — List all webhook activities. Required: webhook_id. Truto pages through all results (100 per page, or your limit up to 100).
- **create_a_givebutter_webhook** — Create a webhook. Required: url.
- **delete_a_givebutter_webhook_by_id** — Delete a webhook. Required: id.
- **get_single_givebutter_webhook_by_id** — Get a webhook. Required: id.
- **list_all_givebutter_webhooks** — List all webhooks. Truto pages through all results (100 per page, or your limit up to 100).
- **update_a_givebutter_webhook_by_id** — Update a webhook. Required: id, url, events.

## How it works

1. **Link your customer's Givebutter account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Givebutter.** The Proxy API is a 1-to-1 mapping of the Givebutter API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Enrich marketing automation with donor data** — Marketing and email platforms can sync Givebutter contacts, tags, and campaign activity to trigger segmented follow-up journeys based on real donation behavior. Truto handles the auth and sync plumbing so you ship a native Givebutter connector in days, not quarters.
- **Automate nonprofit accounting reconciliation** — Bookkeeping and ERP tools can pull Givebutter transactions, payouts, and funds to automatically match batched deposits to individual donations and allocate revenue to the right ledger accounts. This removes the biggest manual pain point for nonprofit finance teams.
- **Power AI donor cultivation and outreach tools** — AI writing and donor engagement platforms can read transaction history, pledges, tickets, and contact activity to generate personalized solicitations, then log the outreach back to the donor's timeline. Truto gives you consistent read/write access without wrestling with Givebutter-specific pagination or auth.
- **Drive live event and gala experiences** — Event tech, leaderboard, and gamification platforms can subscribe to Givebutter webhooks to react to donations in real time — updating jumbotrons, leaderboards, and team standings as gifts come in. Truto manages webhook registration and delivery auditing on your behalf.
- **Sync Givebutter with specialized CRMs and databases** — Operational tooling (Airtable-style databases, wealth screening, major gifts CRMs) can two-way sync contacts, households, and transactions to keep a single source of truth. Truto normalizes the connection so your users just click 'Connect Givebutter' and go.

## What you can build

- **Two-way contact and tag sync** — Keep donors in your product aligned with Givebutter contacts, using bulk tag update/delete to segment donors without overwriting manually applied tags.
- **Automated payout-to-transaction reconciliation** — Pull payouts and their underlying transactions to automatically match bank deposits to individual donations and allocate them to the correct fund.
- **Real-time donation webhooks** — Programmatically register Givebutter webhooks for your users and audit delivery activity so you can trigger Slack alerts, leaderboards, or in-app notifications the moment a gift is made.
- **Household and relational giving insights** — Create and manage Givebutter households and household contacts to roll up giving across families, companies, or donor-advised fund relationships.
- **Campaign and ticket management from your app** — Let users create campaigns, discount codes, and tickets inside your product and have them appear natively in Givebutter — including reading campaign members and teams for event-day logistics.
- **Donor timeline write-back** — Log emails, calls, meetings, and other engagement from your platform directly onto the Givebutter contact's activity timeline so fundraisers see a complete history.

## FAQs

### How do end users authenticate their Givebutter account?

Truto manages the Givebutter API key exchange and credential storage for you. Your end users connect through a Truto-hosted flow, and you call the Givebutter tools using Truto's unified connection reference — no key handling on your side.

### Which Givebutter resources can I read and write today?

The integration covers campaigns (including discount codes, members, teams, and tickets), contacts (with bulk tag operations), contact activities, households and household contacts, funds, transactions, pledges, recurring plans, payouts, messages, tickets, SSO accounts/campaigns, and webhooks — with full CRUD where Givebutter exposes it.

### Does Truto support Givebutter webhooks for real-time updates?

Yes. You can create, update, list, and delete Givebutter webhooks via Truto, and inspect delivery history using the webhook activities endpoints — ideal for live donation alerts and event dashboards without heavy polling.

### Can I create campaigns and provision accounts on behalf of my users?

Yes. In addition to standard campaign create/update/delete tools, Givebutter's SSO endpoints are exposed (list SSO accounts, get SSO campaign) so partner platforms can offer embedded account and campaign provisioning from inside their own product.

### How is pagination handled across list endpoints?

Truto normalizes Givebutter's pagination for every list endpoint (contacts, transactions, payouts, campaigns, etc.) so you can iterate through large donor and transaction datasets with a consistent cursor pattern instead of per-resource quirks.

### What if I need a Givebutter endpoint that isn't in the tool list?

Truto ships new tools on request. If you need coverage for an endpoint not currently in the inventory, reach out and it can typically be added quickly without changing your integration surface.
