Blog

News and tips from Briskine.

Insert content from your other open tabs

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.

Insert anything from the page into your templates

Your templates can now use anything from the page you're writing on, like an order number, a job title, or a customer's name.

Variables like {{to.first_name}} or {{subject}} let your templates use details about the message you're writing. Anything else on the page, like the order in your helpdesk or the candidate in your applicant tracking system, had to be copied and pasted by hand.

The new css helper lets your templates read from the page itself. It's one of the larger additions to templates since template helpers, and the first of a few related features we're working on. Point your template at the part you need once, and Briskine fills it in every time you insert the template.

Anything you can see on the page

  • Text, like a name, a price, or a status.
  • Links, like the address of a profile or a product.
  • Form fields, with whatever is typed in them, even if it hasn't been saved yet.
  • Checkboxes, radio buttons, and dropdowns, with whatever has been picked.
  • Lists, like every item in an order.

The page is read when you insert the template, so you always get what's on it at that moment.

Choose what to insert with a CSS selector

You pass the css helper a CSS selector for the part of the page you want. For example, .job-title points at the element with the job-title class:

Thanks for applying for the {{css ".job-title"}} role.

If the page is a job posting for a Marketing Manager, your message says "Thanks for applying for the Marketing Manager role."

To find the selector, right-click the text on the page, choose Inspect, and look for the class or id of the highlighted element. Put a . in front of a class, or a # in front of an id.

Works with your other helpers

You can combine the css helper with the helpers you already use, like capitalizing a name that's written in lowercase on the page:

Hi {{capitalize (css ".customer-name")}},

Or using if to only mention something when it's on the page:

{{#if (css ".discount")}}
Your discount of {{css ".discount"}} has been applied.
{{/if}}

When there's no discount on the page, the line is left out, so the same template works whether or not the customer has one.

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

Recover deleted templates

Deleted a template by accident? You can now get it back from the Trash.

Whenever you delete a template, Briskine now keeps it in the Trash for 30 days before removing it for good. During that time, you can restore it, and it comes back with its original shortcut, tags, and sharing settings. If you need to restore several at once, select them from the list and use the Bulk Actions menu.

The Trash page, showing deleted templates and the option to restore them.

If you're part of a team, your Trash only shows deleted templates that you've created yourself, even if they were shared. And if you're sure you won't need something back, you can delete it permanently at any time, or empty the whole Trash in one go.

Restoring templates is available on our premium plan.

Read more on the Trash page in our Help Center.

Insert templates in Google Docs with the new Briskine Sidebar

The new Briskine Sidebar puts your templates in a side panel that stays open, so you can insert several in a row without reopening the dialog each time. It's also the first way to insert templates directly into Google Docs.

The Briskine Dialog closes as soon as you insert a template, so filling out a longer email or replying to several messages in a row means reopening it every time.

The Sidebar stays open on the side of your browser window, so you can pick a template, then pick the next one without closing anything in between. Because it's a native browser panel rather than something tied to a single page, it follows you across tabs, and works with Chrome's split view if you're working in two tabs side by side.

How to open the Sidebar

Right-click anywhere on the page and choose Briskine → Open sidebar.

If you're on a Chromium-based browser, like Chrome, Brave, or Edge, you can also right-click the Briskine icon in your toolbar and select Open side panel.

Once it's open, focus the text field you want to fill in, then select a template in the Sidebar to insert it. You can browse and search your templates the same way you would in the dialog.

The Sidebar is resizable, so you can make it wider to see more of your templates at a glance. It's available alongside the Dialog and Bubble everywhere Briskine already works.

Google Docs support

We've had requests for Google Docs support for a while. Because the Sidebar is a native browser panel, it works in Google Docs too, where the Dialog and Bubble aren't available.

Open a Google Doc, bring up the Sidebar, and insert templates into your document the same way you would anywhere else.

For more details, visit the Sidebar page in the Briskine Help Center.

Position the cursor anywhere in your templates

The new Cursor helper lets you automatically position the text cursor anywhere in your text after inserting a template.

Briskine can now place the cursor exactly where you need to fill in details, so you no longer need to manually click through the template.

By default, when you insert a Briskine template, the text cursor lands at the end of the inserted text. This works for most templates, but it's not ideal when you need to fill in a specific detail in the middle of a long message. Cursors are designed to save you those extra clicks and keep your hands on the keyboard.

How to use the Cursor helper

To set the starting position of your cursor, just add the {{cursor}} helper to your template. For example, if you have a template for scheduling a meeting, you can place the cursor exactly where the time should go:

Hi {{to.first_name}},
Are you free for a call at {{cursor}} today?

When you insert this template, Briskine will automatically place the cursor right after "at", so you can type the time and hit send immediately.

Support for multiple cursors and placeholders

If you need to fill in multiple fields, you can use more than one cursor in a single template. You can navigate between them by pressing ⇥ Tab to jump to the next position, or ⇧ Shift + ⇥ Tab to go back.

You can also add placeholders to your cursors to make it clear what needs to be filled in:

Invoice Number: {{#cursor}}INV-001{{/cursor}}
Amount: {{#cursor}}$0.00{{/cursor}}

When you reach a cursor with a placeholder, the text inside will be automatically selected. Just start typing to replace it.

Conditional cursors for smarter workflows

Because the cursor is a template helper, you can even use it inside conditional logic. This is great for making sure you don't forget to fill in a name if a variable is missing:

Hello {{or to.first_name (cursor "NAME")}},

If the recipient’s first name is available, Briskine will insert it. If not, it will insert a cursor with the NAME placeholder so you can fill it in manually.

The new cursor feature works in text areas, input fields, and rich-text editors across all websites, including Gmail, Outlook.com, and LinkedIn.

For more details and examples of how to use cursors with complex placeholders or HTML styling, visit the Briskine Help Center.