SawStream for Salesforce
SawStream lets you pull live data from your Salesforce org and display it on any website, no backend code required. Connect your Salesforce account once, build a query that defines what object and fields to show, pick a layout (table, cards, calendar, JSON, CSV, etc.), and paste a small embed snippet into your site. Every time someone loads the page, SawStream fetches fresh data from Salesforce and renders it.
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.
Salesforce setup
SawStream connects to Salesforce using OAuth 2.0. You need to create an External Client App in Salesforce first, then paste the credentials into SawStream.
- Log in to your Salesforce org and go to Setup.
- In the Quick Find box, search for App Manager and click it.
- Click New External Client App in the top right.
- Fill in the External Client App Name (anything you like, e.g. "SawStream") and your contact email.
- Under API (Enable OAuth Settings), check Enable OAuth Settings.
- In the Callback URL field, paste the callback URL shown on your SawStream Salesforce settings page. It looks like
https://yourdomain.com/auth/salesforce/callback. Use the exact URL from SawStream, not a guess. - Under Selected OAuth Scopes, add at minimum Manage user data via APIs (api) and Perform requests at any time (refresh_token, offline_access).
- Uncheck Require Proof Key for Code Exchange (PKCE) if it is checked.
- Save the External Client App. Salesforce may take a few minutes to activate it.
- After saving, click Manage Consumer Details to get your Consumer Key (Client ID) and Consumer Secret (Client Secret).
- Go to Salesforce in the sidebar of your SawStream admin.
- Paste your Consumer Key into the Client ID field.
- Paste your Consumer Secret into the Client Secret field.
- If your org is a sandbox, change the Login URL field to
https://test.salesforce.com. Production orgs use the defaulthttps://login.salesforce.com. - Click Save Settings.
- Click Connect to Salesforce. You will be redirected to Salesforce to authorize the app.
- Log in to Salesforce (if prompted) and click Allow.
After authorizing, you are sent back to the SawStream Salesforce settings page. The status shows as Connected with your Salesforce username. You can now create queries against your org.
Queries
A query defines what Salesforce data to fetch and how to display it. Each query gets its own embed code (or URL for JSON/CSV), so you can have as many as you need across different pages.
- Click + New Query from the Dashboard or the Queries page.
- Give the query a name. This is just for your reference inside SawStream.
- Pick a Salesforce Object from the dropdown — Account, Contact, Opportunity, etc. The list is fetched live from your connected org.
- Add the Fields you want to display. Each row has the API field name (e.g.
FirstName) and the display label. Click the field input to search your object's fields. - Choose a Layout. See the Layouts section for what each one does.
- Set Per Page if you want pagination. Leave it blank or set it to 0 to show all records.
- Add a WHERE Clause if you only want a subset of records. Write standard SOQL, for example
IsActive = trueorCreatedDate = LAST_N_DAYS:30. Do not include the word WHERE. - To create a detail page that loads one record by ID, set the filter to
Id = '{!id}'— the{!id}placeholder is replaced with the value of the?id=URL parameter on the embedding page. - If you want a search bar on the embed, turn on Enable Search Bar and add the field API names you want to search against in Search Fields.
- To link each record to a detail page, fill in Detail Link Template. Use
{!FieldName}to insert field values, e.g.https://example.com/contacts/{!Id}. - Click Save Query.
Each query has a Data Freshness setting that controls how often SawStream fetches new data from Salesforce. Choose Live Data for real-time results on every page load, or cache responses for 15 minutes, 1 hour, 6 hours, or 12 hours. Caching reduces API calls against your Salesforce limits and speeds up page loads. Use Live Data for fast-changing records (open opportunities, support cases) and longer caches for stable data (product catalogs, office locations). Settable per query.
From the Queries page: Edit opens the editor (changes take effect immediately for live embeds), Copy Code copies the snippet to your clipboard, Delete removes the query (type DELETE to confirm — this breaks any live embeds using its code, and there is no undo).
Layouts
Each query has a layout that controls how the data appears on your site. Pick the layout when creating or editing a query.
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.
Tighter 3-column layout. Header band with the record name plus compact label/value rows.
Filter sidebar (search box, checkboxes, range sliders) auto-built from your fields, with matching records on the right.
FullCalendar month/week/list views. Required fields: Event title and a Start Date. Color events by a field, hover for popup.
You write a template; SawStream renders it per record. Use {!FieldName} placeholders to insert field values.
Stable JSON URL — fetch it from any frontend, mobile app, or workflow. Same data as the embed.
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, go to its detail page to get the embed code. For layouts that produce HTML output, you'll see a two-line snippet like this:
<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>. When the page loads, the script fetches your query's data and renders it inside the <div class="sawstream-section">.
By default the widget renders inside the nearest .sawstream-section div above the script. For more control, add a data-target attribute pointing to any element on the page:
<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://mysite.com. Only requests from those origins are served.
Leaving this blank allows requests from any domain — fine for testing, but before going live lock it down to your site. You can also set allowed origins per query, overriding the global setting.
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 Update Password when valid.
Click Log out in the sidebar footer. You're redirected to the login page immediately.