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.

First-time install
  1. From the Attio App Store, open SawStream and click Install — or use Sign in with Attio on sawstream.com/login.
  2. Attio asks you to approve read-only access to your objects, attributes, records, and lists. Click Allow.
  3. 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.
  4. You land on the dashboard with two sample queries already created, so you can see how an embed works straight away.
Signing back in

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.

SawStream requests these read-only scopes: 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.

Creating a query
  1. Click + New Query and pick Attio as the platform.
  2. Give the query a name. This is just for your reference.
  3. Pick an Object from the dropdown — Attio's standard objects (People, Companies, Deals, Users, Workspaces) plus any custom objects your workspace owner has created.
  4. 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.
  5. Choose a Layout. See the Layouts section.
  6. Set Per Page for pagination, or leave blank to show all records.
  7. If you want a search bar on the embed, turn on Enable Search Bar and pick which attributes to search.
  8. To make each record clickable, fill in Detail Link Template. Use {!attribute_slug} placeholders, e.g. https://example.com/contact?id={!record_id}.
  9. Click Save Query.
Filtering records

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' — equals
  • stage != 'Lost' — not equal
  • amount > 1000 — greater than (also >=, <, <=)
  • name LIKE '%ack%' — contains  ·  'Jack%' starts with  ·  '%son' ends with
  • stage IN ('One', 'Two') — matches any value in the list
  • email 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.

Use the attribute's API slug (e.g. stage, amount) — the same slug shown in the attribute picker — not its display label.
Sorting & limiting

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).

How Attio attributes flatten

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 namefull_name, or first_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).
Data freshness

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.

Table

Standard data table with column headers, sortable by clicking, and a sticky first column on narrow screens.

Cards

Each record becomes a card — first attribute is the title, remaining attributes show as label/value pairs.

Grid

Tighter 3-column layout. Header band with the record name plus compact label/value rows.

Sidebar

Filter sidebar (search, checkboxes, range sliders) auto-built from your attributes, with matching records on the right.

Calendar

FullCalendar month/week/list views. Pick a date attribute for the start, a title attribute, and optionally an end date.

Custom HTML

You write a template; SawStream renders it per record. Use {!attribute_slug} placeholders.

JSON

Stable JSON URL — fetch it from any frontend, mobile app, or workflow.

CSV Download

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>.

Targeting a specific element

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>
JSON and CSV links

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.

Securing the integration

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.

Leaving this blank means any site can embed your query. Add your domains before going live.

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.

Inviting teammates
  1. On the Connect Attio page, find the Team section.
  2. Enter a teammate's email and click Send invite. They must belong to the same Attio workspace.
  3. They receive an email to Sign in with Attio; once they do, they're added automatically.
Access requests

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.

Subscribing
  1. Click the trial badge in the sidebar, or Subscribe on the Connect Attio page.
  2. Review the plan: $70/month, billed annually — it covers your entire organization, with no per-seat fees.
  3. 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.

  1. In Attio: workspace name → Settings → Developers → Access tokens → New access token.
  2. Grant Read on User Management, Records, Object Configuration, List Entries, and List Configuration.
  3. Create it and copy the token (Attio shows it once).
  4. On SawStream's Connect Attio page, expand "Use an Access Token instead", paste the token, and click Connect.
An Access Token carries the union of its scopes — Attio doesn't grant per-object read scopes, so a token with Records (Read) can read every object in the workspace. Revoke leaked tokens from Settings → Developers → Access tokens in Attio.

Your account

Disconnecting

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].

Logging out

Click Log out in the sidebar footer. Sign back in anytime with Sign in with Attio.