SawStream for Attio
SawStream turns your Attio data into live, embeddable views for any website — no backend code required. Install the app, pick an object and the attributes to display, choose a layout (table, cards, calendar, JSON, CSV, etc.), and paste a small snippet. Every page load fetches fresh data from your Attio workspace.
Install & sign in
SawStream connects to Attio over OAuth — there's nothing to copy or paste, and no password to set.
- From the Attio App Store, open SawStream and click Install — or use Sign in with Attio on sawstream.com/login.
- Attio asks you to approve read-only access to your objects, attributes, records, and lists. Click Allow.
- You're returned to SawStream's onboarding screen. Confirm your email and click Get Started — this creates your workspace account and begins your 3-day free trial.
- You land on the dashboard with two sample queries already created, so you can see how an embed works straight away.
To return later, go to sawstream.com/login and click Sign in with Attio, or open SawStream from Attio. We match you to your workspace automatically — no password needed.
user_management:read, object_configuration:read, record_permission:read, list_entry:read, list_configuration:read. We never write to your Attio workspace.Trouble signing in? Email [email protected].
Build a query
A query defines what Attio data to fetch and how to display it. Each query gets its own embed code (or URL for JSON/CSV). Your account starts with two (Sample) queries you can edit or delete.
- Click + New Query and pick Attio as the platform.
- Give the query a name. This is just for your reference.
- Pick an Object from the dropdown — Attio's standard objects (People, Companies, Deals, Users, Workspaces) plus any custom objects your workspace owner has created.
- Add the Attributes (fields) you want to display. Attio attributes can be typed (status, currency, reference, select, person name, etc.) — SawStream automatically flattens each one to a printable value so they render cleanly without per-type templates.
- Choose a Layout. See the Layouts section.
- Set Per Page for pagination, or leave blank to show all records.
- If you want a search bar on the embed, turn on Enable Search Bar and pick which attributes to search.
- To make each record clickable, fill in Detail Link Template. Use
{!attribute_slug}placeholders, e.g.https://example.com/contact?id={!record_id}. - Click Save Query.
By default a query returns all records of the object. To show a specific set, type a condition into Filter fields (under "Select specific records to show"). SawStream translates it into an Attio filter. Put the attribute's API slug on the left:
Status = 'Active'— equalsstage != 'Lost'— not equalamount > 1000— greater than (also>=,<,<=)name LIKE '%ack%'— contains ·'Jack%'starts with ·'%son'ends withstage IN ('One', 'Two')— matches any value in the listemail IS NOT EMPTY— has any value at all
Combine conditions with AND / OR — e.g. Status = 'Active' AND amount > 100. Quote text values; numbers and true/false can be unquoted.
stage, amount) — the same slug shown in the attribute picker — not its display label.Use Order by field + Order direction to sort results ascending or descending, Number of records to cap how many are returned, and Records per page to control pagination in the embed (0 = no pagination).
Attio stores every attribute as a historical array of versions. SawStream picks the current (live) version and reduces it to a printable value:
- Text / number / boolean → the raw value.
- Status → the status title (e.g.
"Active"). - Select / multi-select → the option title.
- Email / phone / domain → the address itself.
- Person name →
full_name, orfirst_name last_name. - Currency →
"amount CODE"(e.g."1200.00 USD"). - Reference → the target
record_id(link via a Detail Link Template if you want clickable rows).
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, reducing Attio API usage. Settable per query.
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 attribute is the title, remaining attributes show as label/value pairs.
Tighter 3-column layout. Header band with the record name plus compact label/value rows.
Filter sidebar (search, checkboxes, range sliders) auto-built from your attributes, with matching records on the right.
FullCalendar month/week/list views. Pick a date attribute for the start, a title attribute, and optionally an end date.
You write a template; SawStream renders it per record. Use {!attribute_slug} placeholders.
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 on your site.
Embedding on your site
Once you have a query, open 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.
Allowed domains
Go to Settings in the sidebar to control which websites are allowed to host your embeds.
Enter the domains or websites allowed to load your views and call the query API — one per line, e.g. mysite.com or https://mysite.com (protocols are optional). Only requests from those origins are served. Settable globally or per-query.
Team & access
Everyone in your Attio workspace shares one SawStream account — the same queries, embeds, and subscription. The person who installs is the owner. Each teammate signs in with their own Attio account; nobody shares credentials.
- On the Connect Attio page, find the Team section.
- Enter a teammate's email and click Send invite. They must belong to the same Attio workspace.
- They receive an email to Sign in with Attio; once they do, they're added automatically.
If someone in your workspace signs in before being invited, they see a Request access screen and you (the owner) get an email. Approve or decline them with one click from the Team list.
Only the owner can invite, approve, or remove members.
Trial & subscription
Your account starts with a 3-day free trial — full access, no card required. When it ends, embeds pause until you subscribe.
- Click the trial badge in the sidebar, or Subscribe on the Connect Attio page.
- Review the plan: $70/month, billed annually — it covers your entire organization, with no per-seat fees.
- Click Continue to Checkout to pay securely via Stripe. Your trial converts to an active subscription as soon as payment is confirmed.
Cancel anytime. Questions about billing? Email [email protected].
Advanced: Access Token
If your Attio workspace can't OAuth-install third-party apps (for example a private or internal workspace), you can connect with a manually-created Access Token instead.
- In Attio: workspace name → Settings → Developers → Access tokens → New access token.
- Grant Read on User Management, Records, Object Configuration, List Entries, and List Configuration.
- Create it and copy the token (Attio shows it once).
- On SawStream's Connect Attio page, expand "Use an Access Token instead", paste the token, and click Connect.
Your account
To unlink Attio, click Disconnect on the Connect Attio page — this removes the stored connection. You can also revoke SawStream's access from Attio's settings at any time. To delete your account and all of its data, email [email protected].
Click Log out in the sidebar footer. Sign back in anytime with Sign in with Attio.