Skip to main content
Best Practices

Building widgets without starting from scratch

Plan each widget around one buyer question, then build it in the quote editor, the MSP Tools Hub, or an AI assistant — paste TinyMCE-friendly HTML, check presentation view and the PDF, and save it once as a linked widget template.

Written By Mike Forte

Last updated 2 days ago

You do not need a blank page for every comparison table, case study, or intro letter. Decide what question the block answers, build it once, then reuse it from Quotes → Widget templates.

This article is about how to build those reusable blocks. The order they should appear in a proposal is in Building proposals that win: the buyer's decision journey.

Plan the content first

Each widget answers one buyer question. The journey article uses five:

  1. We See You — do you understand my situation?
  2. Why This Matters — why should I care now?
  3. Why Trust Us — why should I trust you?
  4. What You Get — what exactly am I getting?
  5. The Investment — is this worth it?

Do not stack trust, products, and price into a single block. A widget that tries to do all five reads as a brochure, and the presentation-view table of contents cannot name it as a section.

Give the widget a title that names the question ("Why teams trust us," "Monthly protection"). That title is what the buyer sees in the table of contents. H1–H3 headings inside the rich text also appear there. Bare content with no title and no H1–H3 is skipped.

Turn Display table of contents on in the template settings tab (cog) so those titles are actually shown. It is a setting, not a widget. The table of contents appears in presentation view, not in the editor canvas or the PDF.

Keep variation in the widget library, not in a bloated template. That split is in Quote Templates: templates for the 90%, widgets for the 10%.

Three ways to build

Pick the path that matches the block.

1. The widget editor — simple text and images

Use this when you are writing a letter, a short trust section, or a still image.

  1. Open a quote template at Quotes → Templates, or a draft quote.
  2. In the left-hand outline, click +.
  3. In Insert Quote Widget, pick Content & Products (text plus an optional product table), Video or Image, or Full Page Image.
  4. Click into the text. The toolbar covers bold, lists, alignment, links, tables (Table on the menu), and images (image button).
  5. Set the widget title. In the text, use Heading 2 or Heading 3 from the styles list for section headings — those also appear in the presentation-view table of contents. Heading 1 is not on that list; keep it for pasted HTML if you need it.

Leave products out of a trust or opening block. Add the priced Content & Products widgets later in the journey.

Images in the editor: JPEG, PNG, GIF, or WebP. Keep body images around 1200 px wide. Files above 50 MB are rejected. Prefer PNG or WebP when the image must appear in the PDF.

2. The MSP Tools Hub — structured widgets

Use this when the block is a comparison or matrix table, a tier grid, or another layout the quote editor is slow to draw by hand.

Open the MSP Tools Hub. It is a helper site, not a screen inside Salesbuildr. Tools such as Matrix Creator build those tables for you.

When the block is ready, either:

  • Paste the HTML into Salesbuildr (next section), or
  • Send it into Quotes → Widget templates through the Public API, if that feature is on for your account. An Admin creates the API key at Settings → Integrations → API Key. After the send, the widget appears in your library; insert it into templates with Link as below.

Pasting is enough if you are building one widget. Sending via the API is better when you produce many structured widgets and want them in the library without a copy-paste step.

3. An AI assistant — Claude, ChatGPT, and similar

Use this when you know the copy (tiers, proof points, a service comparison) and want HTML you can paste.

Ask for output that the quote editor can keep. Put these rules in the prompt — they are the ones that survive Source code, presentation view, and the PDF:

  • Ask for TinyMCE-friendly output, not classic HTML.
  • Inline CSS only.
  • Tables at 100% width, maximum 4 columns.
  • Use H1–H3 only for the widget's main headings (these also appear in the presentation-view table of contents); use H5 or H6 for headings inside tables and above paragraphs, because H1–H3 render very large there.

TinyMCE-friendly means a fragment: headings, paragraphs, lists, and tables with styles on the tags. Do not ask for a full web page (<html>, <head>, a <style> block, or scripts). The Source code view will strip or reshape that.

You can still paste fields from Available template variables (company, contact, owner) into the finished HTML. Copy them from the Edit tab rather than typing them. See HTML content, variables, languages, and starter templates.

A prompt you can copy

Replace the text in brackets, then paste the result using the steps in Paste, check, save once.

Create TinyMCE-friendly HTML (not classic HTML) for a Salesbuildr quote widget. It will be pasted into the TinyMCE source code view. Rules: inline CSS only (no style blocks, classes or external files); every table at width:100%; at most 4 columns per table; use H1–H3 only for the main heading; use H5 or H6 for headings inside tables and above paragraphs; no JavaScript; return only the HTML fragment, not a full page. The widget should answer this buyer question: [question]. Content: [your content].

Paste, check, save once

Do this on a test quote or a template you can preview — not on a live customer proposal.

Paste

Content & Products (most pasted tables and letters):

  1. Click into the formatted text.
  2. Click Source code on the toolbar (the </> icon), or open it from View or Tools.
  3. Paste the HTML. Close the source view to return to the formatted editor.

HTML Content (when the whole block should stay as HTML):

  1. Click + → HTML Content → Insert.
  2. Paste into HTML Content. The box already shows markup; there is no Source code button.
  3. Use the Preview under the box as a first look. Company names and other variables fill in later, on the live quote, in presentation view, and on the PDF.

Not every tag or style is supported. If the editor rewrites your table after you close Source code, the HTML was not TinyMCE-friendly — simplify it and paste again.

Check

  1. Set a title on the widget.
  2. On a quote, open Presentation view (or Switch view) and walk the block the way a buyer will. Toggle Mobile/Desktop. Confirm the title (and any H1–H3) appear in the table of contents when that setting is on.
  3. Open Preview for the PDF. Tables that look fine on screen can still overflow or shrink in the file — that is why the width and four-column limits matter. Video embeds play in presentation view and are left out of the PDF.

Fix in Source code (or the HTML Content box), then check both views again.

  1. On the widget toolbar, click the template icon (Save a copy as widget template).
  2. In Create widget template, give it a Name the team will recognize.
  3. Click Save. The widget is now in Quotes → Widget templates.
  4. Open each quote template that should use it. Click +. In Insert Quote Widget, select that library widget.
  5. Turn Link widget templates on, then Insert. Later edits to the library widget then update every template that uses it, the next time that template is opened. Leave the toggle off for a one-off copy.

Do this linking in the template editor. Quotes created from a template are a snapshot: later library edits do not change drafts or sent quotes that already exist.

On the template, a linked widget shows a chain-link icon. Click it to edit the library record for every linked use. Marketplace widgets can only be copied, not linked.

If the Hub already sent the widget into the library, skip the save step. Still insert it onto a test quote, check presentation view and the PDF, then Link it into the real templates.

See also