SawStream for Givebutter
SawStream lets you display live data from your Givebutter account on any website — no backend required. Connect once with an API key, build a query over donors, transactions, campaigns, recurring plans, teams, tickets, members, or funds, choose a layout (table, cards, calendar, JSON, CSV, etc.), and paste a small embed snippet. Every page load fetches fresh data.
Great for donor walls, live fundraising tickers, campaign progress bars, recurring-supporter leaderboards, and CSV/JSON exports for finance and reporting.
Signing in
The admin login page is at /login. Enter your email and password and click Log in.
Contact [email protected] if you have any issues signing in.
Givebutter setup
Givebutter connects to SawStream via a single API key. Generate one in your Givebutter dashboard, paste it into SawStream, and you're connected. No OAuth flow, no refresh.
- In Givebutter, go to Settings → Integrations → API.
- Click Generate new key and give it a name (e.g. "SawStream").
- Copy the key — it's only shown once. Treat it like a password.
- Go to Givebutter in the sidebar of your SawStream admin.
- Paste the API key into the textarea.
- Click Save & Connect.
- SawStream verifies the key against Givebutter's API. If valid, the page reloads showing Connected.
Queries
A query defines what Givebutter data to fetch and how to display it. Each query gets its own embed code (or URL for JSON/CSV).
- Click + New Query and pick Givebutter as the platform.
- Give the query a name. This is just for your reference.
- Pick an Object from the dropdown — contacts, transactions, campaigns, plans, members, tickets, teams, or funds.
- Add the Fields you want to display by clicking them in the field list. SawStream infers the fields by fetching one sample record from Givebutter.
- Choose a Layout. See the Layouts section.
- Set Per Page for pagination, or leave blank to show all records (up to 10,000).
- If you want a search bar on the embed, turn on Enable Search Bar and pick which fields to search.
- To make each record clickable, fill in Detail Link Template. Use
{!FieldName}for placeholders, e.g.https://example.com/donor?id={!id}. - Click Save Query.
- Donor wall — object
contacts, fieldsfirst_name, last_name, total_donated, layout Cards. - Recent donations ticker — object
transactions, fieldsamount, created_at, contact, layout Table. - Campaign progress — object
campaigns, fieldstitle, goal, raised, layout Custom HTML. - Recurring supporters leaderboard — object
plans, fieldsamount, frequency, contact, layout Table. - Event ticket list — object
tickets, fieldstype, price, attendee, layout Grid. - Peer-to-peer team standings — object
teams, fieldsname, raised, members_count, layout Cards.
The Data Freshness slider controls caching. Live Data refetches on every page load. The 15-minute / 1-hour / 6-hour / 12-hour options cache results, making page loads faster and reducing Givebutter API usage. Settable per query.
From the Queries page: Edit opens the editor, Copy Code copies the snippet, Delete removes the query (type DELETE to confirm).
Layouts
Each query has a layout that controls how the data appears on your site.
Standard data table with column headers, sortable by clicking, and a sticky first column on narrow screens.
Each record becomes a card — first field is the title, remaining fields show as label/value pairs. Great for donor walls.
Tighter 3-column layout. Compact label/value rows. Good for short lists.
Filter sidebar (search, checkboxes, range sliders) auto-built from your fields, with matching records on the right.
FullCalendar month/week/list views. Pick a date field (e.g. created_at) for the start, a title field, and optionally an end date.
You write a template; SawStream renders it per record. Use {!FieldName} placeholders. Ideal for campaign progress bars and donor walls.
Stable JSON URL — fetch it from any frontend, mobile app, or workflow.
A URL that triggers a CSV file download. Wire it to a Download button for finance and reporting exports.
name / title / email property, that's what shows.Embedding on your site
Once you have a query, go to its detail page to get the embed code:
<div class="sawstream-section"></div>
<script src="https://sawstream.com/e/tenant/live.js?q=abcdedquerycodexyz" async></script>
Paste both lines into your website where you want the data to appear. The script tag can go anywhere on the page, including the <head>.
By default the widget renders inside the nearest .sawstream-section div above the script. For more control, add a data-target:
<script src="https://sawstream.com/e/tenant/live.js?q=abcdedquerycodexyz"
data-target="#my-custom-div" async></script>
For JSON and CSV queries you'll see a plain URL instead of a snippet. The JSON URL returns data as an array of objects; the CSV URL triggers a file download.
Settings
Go to Settings in the sidebar to manage allowed origins for your embeds.
A list of domains allowed to load your embed and call the query API. Enter one domain per line, e.g. https://mynonprofit.org. Only requests from those origins are served. Settable globally or per-query.
Your account
Click the lock icon in the sidebar footer. New passwords must be at least 10 characters, include a number, and include a symbol.
Click Log out in the sidebar footer.