Briskine can now fill in your templates with details from your other open tabs, like the name from a LinkedIn profile or the order you have open in your store's admin.

With the css helper, your templates can read anything from the page you're writing on. But when you're writing in Gmail, the details you need are often in a different tab, like the customer's ticket in your helpdesk or the deal in your CRM.

The new site and eachSite helpers let your templates read from those tabs too. Instead of copying details from one tab to the other, let Briskine read them for you when you insert the template.

Read from another tab with site

The site block helper finds an open tab whose address matches the one you give it. Inside the block, Briskine reads variables and page content from that tab instead of the page you're writing on.

Hi {{#site "linkedin.com"}}{{to.first_name}}{{/site}},

The variables inside the block are the same ones you'd get if you inserted the template on that tab. And the css helper reads the other tab's page:

{{#site "linkedin.com/in/*"}}
I saw you are now {{css ".headline"}}, congratulations!
{{/site}}

If the profile says Head of Sales at Cooper & Co., your message says "I saw you are now Head of Sales at Cooper & Co., congratulations!"

When the tab isn't open, use {{else}} to fall back to something else:

{{#site "linkedin.com"}}
Hi {{to.first_name}},
{{else}}
Hi there,
{{/site}}

You can also insert the address or the title of the tab, with {{@site.url}} and {{@site.title}}. It's handy for linking back to the page you're talking about.

When more than one tab matches, site picks the one you used most recently. To read all of them, use eachSite.

Read from every matching tab with eachSite

The eachSite block helper inserts its content once for every open tab that matches. With a few LinkedIn profiles open, one template can build a table in Google Sheets, with a row for each profile.

Here's a simpler example, listing every order you have open in an online store:

{{#eachSite "example.com/orders"}}
- {{css ".order-number"}}: {{@site.url}}
{{else}}
No orders open.
{{/eachSite}}

With orders #1024 and #1025 open, your message lists both of them, each with a link back to the order. With none open, it says "No orders open."

Choose which tabs to match

The address you give the helpers can be a whole website, like linkedin.com, or only part of it, like linkedin.com/in/*. Subdomains count too, so example.com also matches shop.example.com, and * stands for any part of the path.

Briskine reads the tabs when you insert the template, so you always get what's on them at that moment. If a tab is still loading, or your browser put it to sleep to save memory, it may not answer in time. Open it once to wake it up.

Your tabs stay private

Briskine reads just the tabs your template asks for, and skips any website you've added to the Blocklist on the Settings page. Password, card, and one-time code fields always read as empty.

What it reads never leaves your browser. It goes into the template you're inserting, and nowhere else.

For more examples, see Site Helpers in the Briskine Help Center. Each example includes sample tabs you can edit to try it out.