CINXE.COM

Changelog | Waypoint documentation

<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-bguv2lll"> <head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Changelog | Waypoint documentation</title><link rel="canonical" href="https://www.usewaypoint.com/changelog/"/><link rel="sitemap" href="/sitemap-index.xml"/><script> !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug getPageViewId captureTraceFeedback captureTraceMetric".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]); posthog.init('phc_gKKvbbltUmOWWeljbMRggcWpdYHRVuwrgHk3B8qUf1s', { api_host: 'https://us.i.posthog.com', person_profiles: 'identified_only', }) </script><link href="https://www.usewaypoint.com/changelog/rss.xml" rel="alternate" title="Changelog" type="application/rss+xml"/><link rel="shortcut icon" href="/./src/assets/favicon.ico" type="image/x-icon"/><meta name="generator" content="Astro v5.1.7"/><meta name="generator" content="Starlight v0.31.0"/><meta property="og:title" content="Changelog"/><meta property="og:type" content="article"/><meta property="og:url" content="https://www.usewaypoint.com/changelog/"/><meta property="og:locale" content="en"/><meta property="og:description"/><meta property="og:site_name" content="Waypoint documentation"/><meta name="twitter:card" content="summary_large_image"/><script> window.StarlightThemeProvider = (() => { const storedTheme = typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme'); const theme = storedTheme || (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'); document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark'; return { updatePickers(theme = storedTheme || 'auto') { document.querySelectorAll('starlight-theme-select').forEach((picker) => { const select = picker.querySelector('select'); if (select) select.value = theme; /** @type {HTMLTemplateElement | null} */ const tmpl = document.querySelector(`#theme-icons`); const newIcon = tmpl && tmpl.content.querySelector('.' + theme); if (newIcon) { const oldIcon = picker.querySelector('svg.label-icon'); if (oldIcon) { oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes); } } }); }, }; })(); </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg> <svg aria-hidden="true" class="dark astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg> <svg aria-hidden="true" class="auto astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> </template><link rel="stylesheet" href="/_astro/print.BJ0teN4y.css" media="print"><style>[data-has-toc] :is(.right-sidebar-panel,mobile-starlight-toc){display:none}[data-has-toc] .main-frame{padding-top:var(--sl-nav-height)}.preview:where(.astro-dr56dw7m){display:flex;flex-direction:column;gap:1.5rem}h2:where(.astro-dr56dw7m){margin-bottom:1.5rem}h2:where(.astro-dr56dw7m) a:where(.astro-dr56dw7m){text-decoration:none}.posts:where(.astro-xaz7kpyh){display:flex;flex-direction:column;gap:3rem} </style> <link rel="stylesheet" href="/_astro/Authors.D-KXzGSx.css"> <style>.content-panel:first-of-type{display:none}.content-panel:nth-of-type(2){border-top:none} :root{--sl-badge-default-border: var(--sl-color-accent);--sl-badge-default-bg: var(--sl-color-accent-low);--sl-badge-default-text: #fff;--sl-badge-note-border: var(--sl-color-blue);--sl-badge-note-bg: var(--sl-color-blue-low);--sl-badge-note-text: #fff;--sl-badge-danger-border: var(--sl-color-red);--sl-badge-danger-bg: var(--sl-color-red-low);--sl-badge-danger-text: #fff;--sl-badge-success-border: var(--sl-color-green);--sl-badge-success-bg: var(--sl-color-green-low);--sl-badge-success-text: #fff;--sl-badge-caution-border: var(--sl-color-orange);--sl-badge-caution-bg: var(--sl-color-orange-low);--sl-badge-caution-text: #fff;--sl-badge-tip-border: var(--sl-color-purple);--sl-badge-tip-bg: var(--sl-color-purple-low);--sl-badge-tip-text: #fff}[data-theme=light]:root{--sl-badge-default-bg: var(--sl-color-accent-high);--sl-badge-note-bg: var(--sl-color-blue-high);--sl-badge-danger-bg: var(--sl-color-red-high);--sl-badge-success-bg: var(--sl-color-green-high);--sl-badge-caution-bg: var(--sl-color-orange-high);--sl-badge-tip-bg: var(--sl-color-purple-high)}.sl-badge:where(.astro-avdet4wd){display:inline-block;border:1px solid var(--sl-color-border-badge);border-radius:.25rem;font-family:var(--sl-font-system-mono);line-height:normal;color:var(--sl-color-text-badge);background-color:var(--sl-color-bg-badge);overflow-wrap:anywhere}.sidebar-content .sl-badge:where(.astro-avdet4wd){line-height:1;font-size:var(--sl-text-xs);padding:.125rem .375rem}.sidebar-content a[aria-current=page]>.sl-badge:where(.astro-avdet4wd){--sl-color-bg-badge: transparent;--sl-color-border-badge: currentColor;color:inherit}.default:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-default-bg);--sl-color-border-badge: var(--sl-badge-default-border);--sl-color-text-badge: var(--sl-badge-default-text)}.note:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-note-bg);--sl-color-border-badge: var(--sl-badge-note-border);--sl-color-text-badge: var(--sl-badge-note-text)}.danger:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-danger-bg);--sl-color-border-badge: var(--sl-badge-danger-border);--sl-color-text-badge: var(--sl-badge-danger-text)}.success:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-success-bg);--sl-color-border-badge: var(--sl-badge-success-border);--sl-color-text-badge: var(--sl-badge-success-text)}.tip:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-tip-bg);--sl-color-border-badge: var(--sl-badge-tip-border);--sl-color-text-badge: var(--sl-badge-tip-text)}.caution:where(.astro-avdet4wd){--sl-color-bg-badge: var(--sl-badge-caution-bg);--sl-color-border-badge: var(--sl-badge-caution-border);--sl-color-text-badge: var(--sl-badge-caution-text)}.small:where(.astro-avdet4wd){font-size:var(--sl-text-xs);padding:.125rem .25rem}.medium:where(.astro-avdet4wd){font-size:var(--sl-text-sm);padding:.175rem .35rem}.large:where(.astro-avdet4wd){font-size:var(--sl-text-base);padding:.225rem .45rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6) .sl-badge:where(.astro-avdet4wd){vertical-align:middle} .card-grid:where(.astro-zntqmydn){display:grid;grid-template-columns:100%;gap:1rem}.card-grid:where(.astro-zntqmydn)>*{margin-top:0!important}@media (min-width: 50rem){.card-grid:where(.astro-zntqmydn){grid-template-columns:1fr 1fr;gap:1.5rem}.stagger:where(.astro-zntqmydn){--stagger-height: 5rem;padding-bottom:var(--stagger-height)}.stagger:where(.astro-zntqmydn)>*:nth-child(2n){transform:translateY(var(--stagger-height))}} svg:where(.astro-c6vsoqas){color:var(--sl-icon-color);font-size:var(--sl-icon-size, 1em);width:1em;height:1em} starlight-tabs:where(.astro-esqgolmp){display:block}.tablist-wrapper:where(.astro-esqgolmp){overflow-x:auto}:where(.astro-esqgolmp)[role=tablist]{display:flex;list-style:none;border-bottom:2px solid var(--sl-color-gray-5);padding:0}.tab:where(.astro-esqgolmp){margin-bottom:-2px}.tab:where(.astro-esqgolmp)>:where(.astro-esqgolmp)[role=tab]{display:flex;align-items:center;gap:.5rem;padding:0 1.25rem;text-decoration:none;border-bottom:2px solid var(--sl-color-gray-5);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial}.tab:where(.astro-esqgolmp) :where(.astro-esqgolmp)[role=tab][aria-selected=true]{color:var(--sl-color-white);border-color:var(--sl-color-text-accent);font-weight:600}.tablist-wrapper:where(.astro-esqgolmp)~[role=tabpanel]{margin-top:1rem} .sl-link-card:where(.astro-mf7fz2mj){display:grid;grid-template-columns:1fr auto;gap:.5rem;border:1px solid var(--sl-color-gray-5);border-radius:.5rem;padding:1rem;box-shadow:var(--sl-shadow-sm);position:relative}a:where(.astro-mf7fz2mj){text-decoration:none;line-height:var(--sl-line-height-headings)}a:where(.astro-mf7fz2mj):before{content:"";position:absolute;inset:0}.stack:where(.astro-mf7fz2mj){flex-direction:column;gap:.5rem}.title:where(.astro-mf7fz2mj){color:var(--sl-color-white);font-weight:600;font-size:var(--sl-text-lg)}.description:where(.astro-mf7fz2mj){color:var(--sl-color-gray-3);line-height:1.5}.icon:where(.astro-mf7fz2mj){color:var(--sl-color-gray-3)}.sl-link-card:where(.astro-mf7fz2mj):hover{background:var(--sl-color-gray-7, var(--sl-color-gray-6));border-color:var(--sl-color-gray-2)}.sl-link-card:where(.astro-mf7fz2mj):hover .icon:where(.astro-mf7fz2mj){color:var(--sl-color-white)} .sl-steps{--bullet-size: calc(var(--sl-line-height) * 1rem);--bullet-margin: .375rem;list-style:none;counter-reset:steps-counter var(--sl-steps-start, 0);padding-inline-start:0}.sl-steps>li{counter-increment:steps-counter;position:relative;padding-inline-start:calc(var(--bullet-size) + 1rem);padding-bottom:1px;min-height:calc(var(--bullet-size) + var(--bullet-margin))}.sl-steps>li+li{margin-top:0}.sl-steps>li:before{content:counter(steps-counter);position:absolute;top:0;inset-inline-start:0;width:var(--bullet-size);height:var(--bullet-size);line-height:var(--bullet-size);font-size:var(--sl-text-xs);font-weight:600;text-align:center;color:var(--sl-color-white);background-color:var(--sl-color-gray-6);border-radius:99rem;box-shadow:inset 0 0 0 1px var(--sl-color-gray-5)}.sl-steps>li:after{--guide-width: 1px;content:"";position:absolute;top:calc(var(--bullet-size) + var(--bullet-margin));bottom:var(--bullet-margin);inset-inline-start:calc((var(--bullet-size) - var(--guide-width)) / 2);width:var(--guide-width);background-color:var(--sl-color-hairline-light)}.sl-steps>li>:first-child{--lh: calc(1em * var(--sl-line-height));--shift-y: calc(.5 * (var(--bullet-size) - var(--lh)));transform:translateY(var(--shift-y));margin-bottom:var(--shift-y)}.sl-steps>li>:first-child:where(h1,h2,h3,h4,h5,h6){--lh: calc(1em * var(--sl-line-height-headings))}@supports (--prop: 1lh){.sl-steps>li>:first-child{--lh: 1lh}} .sl-link-button:where(.astro-xwgiixxa){align-items:center;border:1px solid transparent;border-radius:999rem;display:inline-flex;font-size:var(--sl-text-sm);gap:.5em;line-height:1.1875;outline-offset:.25rem;padding:.4375rem 1.125rem;text-decoration:none}.sl-link-button:where(.astro-xwgiixxa).primary{background:var(--sl-color-text-accent);border-color:var(--sl-color-text-accent);color:var(--sl-color-black)}.sl-link-button:where(.astro-xwgiixxa).primary:hover{color:var(--sl-color-black)}.sl-link-button:where(.astro-xwgiixxa).secondary{border-color:inherit;color:var(--sl-color-white)}.sl-link-button:where(.astro-xwgiixxa).minimal{color:var(--sl-color-white);padding-inline:0}.sl-link-button:where(.astro-xwgiixxa) svg{flex-shrink:0}@media (min-width: 50rem){.sl-link-button:where(.astro-xwgiixxa){font-size:var(--sl-text-base);padding:.9375rem 1.25rem}}.sl-markdown-content .sl-link-button:where(.astro-xwgiixxa){margin-inline-end:1rem}.sl-markdown-content .sl-link-button:where(.astro-xwgiixxa):not(:where(p *)){margin-block:1rem} </style><script type="module" src="/_astro/page.7qqag-5g.js"></script></head> <body class="astro-bguv2lll"> <a href="#_top" class="astro-7q3lir66">Skip to content</a> <div class="page sl-flex astro-vrdttmbt"> <header class="header astro-vrdttmbt"><div class="header sl-flex astro-kmkmnagf"> <div class="title-wrapper sl-flex astro-kmkmnagf"> <a href="/" class="site-title sl-flex astro-m46x6ez3"> <img class="light:sl-hidden print:hidden astro-m46x6ez3" alt src="/_astro/waypoint-logo-dark.DB8Sb5y6.svg" width="142" height="25"> <img class="dark:sl-hidden print:block astro-m46x6ez3" alt src="/_astro/waypoint-logo-light.DWGerSuu.svg" width="142" height="25"> <span class="sr-only astro-m46x6ez3" translate="no"> Waypoint documentation </span> </a> </div> <div class="sl-flex print:hidden astro-kmkmnagf"> <sl-doc-search data-translations="{&#34;placeholder&#34;:&#34;Search&#34;,&#34;translations&#34;:{&#34;button&#34;:{&#34;buttonText&#34;:&#34;Search&#34;,&#34;buttonAriaLabel&#34;:&#34;Search&#34;},&#34;modal&#34;:{&#34;searchBox&#34;:{},&#34;startScreen&#34;:{},&#34;errorScreen&#34;:{},&#34;footer&#34;:{},&#34;noResultsScreen&#34;:{}}}}"> <button type="button" class="DocSearch DocSearch-Button" aria-label="Search"> <span class="DocSearch-Button-Container"> <svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"> <path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path> </svg> <span class="DocSearch-Button-Placeholder">Search</span> </span> <span class="DocSearch-Button-Keys"></span> </button> </sl-doc-search> <script type="module" src="/_astro/DocSearch.astro_astro_type_script_index_0_lang.BhsQGNCe.js"></script> </div> <div class="sl-hidden md:sl-flex print:hidden right-group astro-kmkmnagf"> <div class="sl-flex social-icons astro-kmkmnagf"> <a href="https://www.usewaypoint.com/changelog/rss.xml" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">RSS</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M2.88 16.88a3 3 0 0 0 0 4.24 3 3 0 0 0 4.24 0 3 3 0 0 0-4.24-4.24Zm2.83 2.83a1 1 0 0 1-1.42-1.42 1 1 0 0 1 1.42 0 1 1 0 0 1 0 1.42ZM5 12a1 1 0 0 0 0 2 5 5 0 0 1 5 5 1 1 0 0 0 2 0 7 7 0 0 0-7-7Zm0-4a1 1 0 0 0 0 2 9 9 0 0 1 9 9 1 1 0 0 0 2 0 11.08 11.08 0 0 0-3.22-7.78A11.08 11.08 0 0 0 5 8Zm10.61.39A15.11 15.11 0 0 0 5 4a1 1 0 0 0 0 2 13 13 0 0 1 13 13 1 1 0 0 0 2 0 15.11 15.11 0 0 0-4.39-10.61Z"/></svg> </a> </div> <div class="astro-p2efsdyb"> <a href="/changelog" class="astro-p2efsdyb">Changelog</a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" autocomplete="off" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script> StarlightThemeProvider.updatePickers(); </script> <script type="module">const r="starlight-theme",o=e=>e==="auto"||e==="dark"||e==="light"?e:"auto",c=()=>o(typeof localStorage<"u"&&localStorage.getItem(r));function n(e){typeof localStorage<"u"&&localStorage.setItem(r,e==="light"||e==="dark"?e:"")}const l=()=>matchMedia("(prefers-color-scheme: light)").matches?"light":"dark";function t(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e==="auto"?l():e,n(e)}matchMedia("(prefers-color-scheme: light)").addEventListener("change",()=>{c()==="auto"&&t("auto")});class s extends HTMLElement{constructor(){super(),t(c()),this.querySelector("select")?.addEventListener("change",a=>{a.currentTarget instanceof HTMLSelectElement&&t(o(a.currentTarget.value))})}}customElements.define("starlight-theme-select",s);</script> <script type="module">class s extends HTMLElement{constructor(){super();const e=this.querySelector("select");e&&(e.addEventListener("change",t=>{t.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=t.currentTarget.value)}),window.addEventListener("pageshow",t=>{if(!t.persisted)return;const n=e.querySelector("option[selected]")?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}}customElements.define("starlight-lang-select",s);</script> </div> </div> </header> <nav class="sidebar print:hidden astro-vrdttmbt" aria-label="Main"> <starlight-menu-button class="print:hidden astro-jif73yzw"> <button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-jif73yzw"> <svg aria-hidden="true" class="astro-jif73yzw astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg> </button> </starlight-menu-button> <script type="module">class s extends HTMLElement{constructor(){super(),this.btn=this.querySelector("button"),this.btn.addEventListener("click",()=>this.toggleExpanded());const t=this.closest("nav");t&&t.addEventListener("keyup",e=>this.closeOnEscape(e))}setExpanded(t){this.setAttribute("aria-expanded",String(t)),document.body.toggleAttribute("data-mobile-menu-expanded",t)}toggleExpanded(){this.setExpanded(this.getAttribute("aria-expanded")!=="true")}closeOnEscape(t){t.code==="Escape"&&(this.setExpanded(!1),this.btn.focus())}}customElements.define("starlight-menu-button",s);</script> <div id="starlight__sidebar" class="sidebar-pane astro-vrdttmbt"> <div class="sidebar-content sl-flex astro-vrdttmbt"> <sl-sidebar-state-persist data-hash="1d8bnzn" class="astro-kku4brbg"> <script aria-hidden="true"> (() => { try { if (!matchMedia('(min-width: 50em)').matches) return; /** @type {HTMLElement | null} */ const target = document.querySelector('sl-sidebar-state-persist'); const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0'); if (!target || !state || target.dataset.hash !== state.hash) return; window._starlightScrollRestore = state.scroll; customElements.define( 'sl-sidebar-restore', class SidebarRestore extends HTMLElement { connectedCallback() { try { const idx = parseInt(this.dataset.index || ''); const details = this.closest('details'); if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx]; } catch {} } } ); } catch {} })(); </script> <ul class="top-level astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="https://usewaypoint.com" aria-current="false" class="large astro-3ii7xxms"> <span class="astro-3ii7xxms">Back to Waypoint Home</span> </a> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <sl-sidebar-restore data-index="0"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Getting started</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/docs/introduction/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Introduction</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/quickstart/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Quick start guide</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <sl-sidebar-restore data-index="1"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">API</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/docs/api-reference/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">API reference</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/api-keys-and-authentication/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Authentication</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/testing-with-sandbox-requests/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Using sandbox test requests</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/node-js/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Node.js (npm package)</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/idempotent-requests/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Idempotent requests</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/troubleshooting/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Troubleshooting</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/webhooks/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Webhooks</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="2"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Sending emails</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/docs/verified-domains/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Verified domains</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/approved-senders/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Approved senders</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/sending-template-emails/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Sending with a template</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/sending-without-a-template/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Sending without a template</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/sending-with-attachments/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Sending with attachments</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/sending-in-batches/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Sending in batches</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/unsubscribe-groups/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Unsubscribe groups</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/spam-bounce-thresholds/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Spam &amp; bounce thresholds</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="3"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Templates</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/docs/template-basics/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Template basics</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/template-test-data/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Template test data</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/liquidjs-templating/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Template variables</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/template-color-variables/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Template color variables</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/formatting-data/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Formatting template variables</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/template-navigator/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Template navigator</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/template-layouts/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Template layouts</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/email-client-support/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Email client support</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/downloading-templates/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Downloading templates</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="4"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Workflows</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/docs/workflow-basics/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Workflow basics</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/triggering-workflows/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Triggering workflows</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/using-workflow-delays/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Using delays</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/canceling-a-workflow/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Canceling a workflow</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/workflow-quick-templates/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Using quick templates</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="5"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Teams &amp; workspaces</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/docs/manage-team/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Manage team</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/manage-plan/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Manage plan &amp; billing</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/trial-plan-limitations/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Trial plan limitations</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/under-review/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Under review</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="6"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Activity</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/docs/activity-and-metrics/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Activity &amp; metrics</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/email-event-logs/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Message details</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/tracking-clicks-and-opens/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Tracking clicks and opens</span> </a> </li><li class="astro-3ii7xxms"> <a href="/docs/contacts/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Contacts</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details class="astro-3ii7xxms"> <sl-sidebar-restore data-index="7"></sl-sidebar-restore> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Compare</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/compare/sendgrid-email-api-alternative/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Waypoint vs SendGrid</span> </a> </li><li class="astro-3ii7xxms"> <a href="/compare/amazon-ses-alternative/" aria-current="false" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Waypoint vs Amazon SES</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <a href="/changelog" aria-current="page" class="large astro-3ii7xxms"> <span class="astro-3ii7xxms">Changelog</span> </a> </li> </ul> <script aria-hidden="true"> (() => { const scroller = document.getElementById('starlight__sidebar'); if (!window._starlightScrollRestore || !scroller) return; scroller.scrollTop = window._starlightScrollRestore; delete window._starlightScrollRestore; })(); </script> </sl-sidebar-state-persist> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex astro-wu23bvmt"> <div class="sl-flex social-icons astro-wu23bvmt"> <a href="https://www.usewaypoint.com/changelog/rss.xml" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">RSS</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M2.88 16.88a3 3 0 0 0 0 4.24 3 3 0 0 0 4.24 0 3 3 0 0 0-4.24-4.24Zm2.83 2.83a1 1 0 0 1-1.42-1.42 1 1 0 0 1 1.42 0 1 1 0 0 1 0 1.42ZM5 12a1 1 0 0 0 0 2 5 5 0 0 1 5 5 1 1 0 0 0 2 0 7 7 0 0 0-7-7Zm0-4a1 1 0 0 0 0 2 9 9 0 0 1 9 9 1 1 0 0 0 2 0 11.08 11.08 0 0 0-3.22-7.78A11.08 11.08 0 0 0 5 8Zm10.61.39A15.11 15.11 0 0 0 5 4a1 1 0 0 0 0 2 13 13 0 0 1 13 13 1 1 0 0 0 2 0 15.11 15.11 0 0 0-4.39-10.61Z"/></svg> </a> </div> <div class="astro-p2efsdyb"> <a href="/changelog" class="astro-p2efsdyb">Changelog</a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" autocomplete="off" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script> StarlightThemeProvider.updatePickers(); </script> </div> </div> </div> </div> </nav> <div class="main-frame astro-vrdttmbt"> <script type="module">const a=document.getElementById("starlight__sidebar"),n=a?.querySelector("sl-sidebar-state-persist"),o="sl-sidebar-state",i=()=>{let t=[];const e=n?.dataset.hash||"";try{const s=sessionStorage.getItem(o),r=JSON.parse(s||"{}");Array.isArray(r.open)&&r.hash===e&&(t=r.open)}catch{}return{hash:e,open:t,scroll:a?.scrollTop||0}},c=t=>{try{sessionStorage.setItem(o,JSON.stringify(t))}catch{}},d=()=>c(i()),l=(t,e)=>{const s=i();s.open[e]=t,c(s)};n?.addEventListener("click",t=>{if(!(t.target instanceof Element))return;const e=t.target.closest("summary")?.closest("details");if(!e)return;const s=e.querySelector("sl-sidebar-restore"),r=parseInt(s?.dataset.index||"");isNaN(r)||l(!e.open,r)});addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&d()});addEventListener("pageHide",d);</script> <div class="lg:sl-flex astro-67yu43on"> <aside class="right-sidebar-container print:hidden astro-67yu43on"> <div class="right-sidebar astro-67yu43on"> <div class="lg:sl-hidden astro-pb3aqygn"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-doynk5tl"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-doynk5tl"><details id="starlight__mobile-toc" class="astro-doynk5tl"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-doynk5tl"><div class="toggle sl-flex astro-doynk5tl">On this page<svg aria-hidden="true" class="caret astro-doynk5tl astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </div><span class="display-current astro-doynk5tl"></span></summary><div class="dropdown astro-doynk5tl"><ul class="isMobile astro-g2bywc46" style="--depth: 0;"> <li class="astro-g2bywc46" style="--depth: 0;"> <a href="#_top" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Overview</span> </a> </li> </ul> </div></details></nav></mobile-starlight-toc><script type="module" src="/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.CwvHEPnB.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-pb3aqygn"><div class="sl-container astro-pb3aqygn"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-g2bywc46" style="--depth: 0;"> <li class="astro-g2bywc46" style="--depth: 0;"> <a href="#_top" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Overview</span> </a> </li> </ul> </nav></starlight-toc><script type="module" src="/_astro/TableOfContents.astro_astro_type_script_index_0_lang.CxWEh7Yp.js"></script></div></div> </div> </aside> <div class="main-pane astro-67yu43on"> <main class="astro-bguv2lll" lang="en" dir="ltr"> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <h1 id="_top" class="astro-j6tvhyss">Changelog</h1> </div> </div> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <div class="sl-markdown-content"> <div class="posts astro-xaz7kpyh"> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/activity-metrics-and-filtering" class="astro-dr56dw7m">Activity search</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2025-03-15T00:00:00.000Z" class="astro-2oxtfctb"> Mar 15, 2025 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Perform searches within your activity page to quickly find messages created within your workspace.</p> <video controls preload="metadata" style="display:block;margin:24px auto;max-width:100%;border-radius:8" title="Video of activity search on Waypoint"> <source src="https://assets.usewaypoint.com/short-search.mp4#t=0.001" type="video/mp4"> Your browser does not support the video tag. </video> <p>To search:</p> <ol role="list" class="sl-steps"> <li>Navigate to your ‘Activity’ page within your workspace.</li> <li>Click on the magnifying glass icon.</li> <li>Add a search term.</li> <li>Hit <strong>Enter</strong>.</li> </ol> <p><a href="/docs/activity-and-metrics#message-search">Learn more in our docs</a></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/api-endpoint-list-emails" class="astro-dr56dw7m">API endpoint: List emails</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2025-02-17T00:00:00.000Z" class="astro-2oxtfctb"> Feb 17, 2025 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Use our new <a href="/docs/api-reference#list-emails">email messages API endpoint</a> to pull a report of your email messages, with optional date filters. Get the full picture, including delivery events like bounces, clicks, and complaints.</p> <div class="endpoint"> <span class="sl-badge success small astro-avdet4wd">GET</span> <code>v1/email_messages</code> </div> <div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.zlwos.css"><script type="module" src="/_astro/ec.8zarh.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="shell"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">curl</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">https://live.waypointapi.com/v1/email_messages?createdAt.gt=2024-02-11T17:53:00Z</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">-H </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Content-Type: application/json</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">-u </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">API_KEY_USERNAME:API_KEY_PASSWORD</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="curl &#x22;https://live.waypointapi.com/v1/email_messages?createdAt.gt=2024-02-11T17:53:00Z&#x22; \-H &#x22;Content-Type: application/json&#x22; \-u &#x22;API_KEY_USERNAME:API_KEY_PASSWORD&#x22;"><div></div></button></div></figure></div> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/updated-docs" class="astro-dr56dw7m">Updated docs</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2025-01-31T00:00:00.000Z" class="astro-2oxtfctb"> Jan 31, 2025 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Our <a href="/docs">docs</a> have been refreshed with updated guides, improved navigation, and a smarter search.</p> <p><img src="/_astro/updated-docs.BlGRzj_U_BU1bx.webp" alt="Updated docs" width="3348" height="2096" loading="lazy" decoding="async"></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/api-endpoint-batch-message-report" class="astro-dr56dw7m">API endpoint: batch message report</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2025-01-11T00:00:00.000Z" class="astro-2oxtfctb"> Jan 11, 2025 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>With our new <a href="/docs/api-reference#fetching-a-batch-email-report">batch email messages API endpoint</a>, you can now get a report with all of the email messages that were sent through an <a href="/docs/sending-in-batches">email batch</a>. See the full context for each of your emails in your batch including delivery events like bounces, clicks, and complaints.</p> <div class="endpoint"> <span class="sl-badge success small astro-avdet4wd">GET</span> <code>v1/batches/:id/email_messages</code> </div> <div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.zlwos.css"><script type="module" src="/_astro/ec.8zarh.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="shell"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">curl</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">https://live.waypointapi.com/v1/batches/batch_RmETGV42naFpgHjr/email_messages</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">-H </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Content-Type: application/json</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">-u </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">API_KEY_USERNAME:API_KEY_PASSWORD</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="curl &#x22;https://live.waypointapi.com/v1/batches/batch_RmETGV42naFpgHjr/email_messages&#x22; \-H &#x22;Content-Type: application/json&#x22; \-u &#x22;API_KEY_USERNAME:API_KEY_PASSWORD&#x22;"><div></div></button></div></figure></div> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/email-tracking-settings" class="astro-dr56dw7m">Email Tracking Settings</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-12-02T00:00:00.000Z" class="astro-2oxtfctb"> Dec 2, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>By default, Waypoint tracks events for clicks and opens. This allows teams to gather insights around <a href="/docs/activity-and-metrics">activity within individual emails</a>.</p> <p>To track opens, Waypoint places a 1x1 pixel transaprent image within each message to track every time someone opens an email. To track clicks, Waypoint modifies (and masks) all links in a message to use a proxy URL to record the click before redirecting to the destination.</p> <p>Due to these tradeoffs, teams may decide to turn these tracking settings off. These options can now be configured directly within your workspace settings page.</p> <p><img src="https://assets.usewaypoint.com/screenshot-tracking.png" alt="Tracking Screenshot on Waypoint"></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/webhooks" class="astro-dr56dw7m">Webhooks</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-11-06T00:00:00.000Z" class="astro-2oxtfctb"> Nov 6, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>One of our most requested features is now available – <a href="/docs/webhooks">webhooks</a>. Webhooks are how services notify each other of events. On Waypoint, customers can use webhooks take action after an email event like a ‘bounce’ or ‘delivery’ has happened.</p> <p>For example, posting a notification in a Slack channel whenever an email bounces or is marked as spam.</p> <p><a href="/docs/webhooks#adding-an-endpoint">Add custom webhook endpoint URLs</a> or use our <a href="/docs/webhooks#slack-and-zapier-integrations">Slack and Zapier</a> integrations to make it even easier to connect and transform your data as needed.</p> <p><img src="https://assets.usewaypoint.com/screenshot-webhooks-add-endpoint-form.png" alt="Add and configure Waypoint endpoint"></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/improved-management-and-roles" class="astro-dr56dw7m">Improved user management and roles</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-10-14T00:00:00.000Z" class="astro-2oxtfctb"> Oct 14, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Workspaces now include improved user management and roles to support additional team flexibility. This includes:</p> <ul> <li>A new workspace ‘Owner’ role.</li> <li>Owners can reassign ownership to another admin.</li> <li>Owners and Admins can now remove users and open invites.</li> </ul> <p>As always, teams on Waypoint can add an unlimited amount of admins and users to their workspace for no additional cost.</p> <p><img src="https://assets.usewaypoint.com/screenshot-team-members.png" alt="Waypoint team members screenshot"></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/api-endpoint-email-message-timeline-events" class="astro-dr56dw7m">API endpoint: email message timeline events</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-10-09T00:00:00.000Z" class="astro-2oxtfctb"> Oct 9, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Our new <a href="/docs/api-reference#email-message-log">email message events API endpoint</a> gives teams the ability to access the full timeline of events on an individual email message. These events include when the message was created, every open, click, bounce, or any other event found in our <a href="/docs/email-event-logs">email event message logs</a>.</p> <p>This is especially helpful for teams that want to show this timeline of events to their own customers. For example, a CRM software platform may want to show these delivery events to help their customers better understand deliverability.</p> <div class="endpoint"> <span class="sl-badge success small astro-avdet4wd">GET</span> <code>/v1/email_messages/EMAIL_MESSAGE_ID/events</code> </div> <p><img src="https://assets.usewaypoint.com/timeline.png" alt="Message timeline"></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/dynamic-colors-on-templates" class="astro-dr56dw7m">Dynamic Colors on Templates</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-08-21T00:00:00.000Z" class="astro-2oxtfctb"> Aug 21, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Waypoint’s new dynamic colors feature allow teams to theme email templates based on data. This is especially useful for vertical SaaS platforms (eg. software for yoga studios) that want to apply their customer’s branding and colors on email templates instead of their own. <a href="/docs/template-color-variables#tutorial">View an example/tutorial</a>.</p> <p>At the heart of Waypoint’s <a href="/docs/template-basics">template builder</a> is the use of <a href="/docs/liquidjs-templating">data variables</a> to apply the dynamic elements of a template. While these variables are most often used for dynamic text and images, they can now be used to set dynamic colors on a template or <a href="/docs/template-layouts">layout</a>.</p> <p><img src="https://assets.usewaypoint.com/whitelabel-default.png" alt="Dynamic color variables"></p> <p>From a template or layout builder, simply click on the <code dir="auto">{}</code> icon next to a color within the global ‘Styles’ tab to set a theme color override based on data. Example: <code dir="auto">{{company.brandColor}}</code>.</p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/usage-report" class="astro-dr56dw7m">Usage report</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-06-21T00:00:00.000Z" class="astro-2oxtfctb"> Jun 21, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Track usage (and any overages) easier on Waypoint.</p> <p>All of our subscription tiers come with a base set of emails included on each plan. For example, our starter plan includes 10,000 live emails sends. To help teams better track usage, we’ve added a simple report within the billing section on your workspace settings page.</p> <p>Additionally, any overages are now automatically calculated and billed as part of your monthly invoice.</p> <p><img src="https://assets.usewaypoint.com/screenshot-usage-report.png" alt="Usage report screenshot"></p> <p><em>Note: If you are currently on a paid workspace and not seeing this, you should see it at the start of your next invoice cycle.</em></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/api-endpoint-previewing-templates" class="astro-dr56dw7m">API endpoint: previewing templates</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-05-23T00:00:00.000Z" class="astro-2oxtfctb"> May 23, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Teams can now preview a Waypoint email template via API. This is especially helpful for teams that want to show a preview of an email (within their platform) before sending through Waypoint. For example, an invoicing platform.</p> <p>Use the new endpoint and optionally pass in custom data or with your template’s test data to get the processed HTML template as a response.</p> <div class="endpoint"> <span class="sl-badge note small astro-avdet4wd">POST</span> <code>/v1/templates/TEMPLATE_ID/preview</code> </div> <p>Learn more in our <a href="https://www.usewaypoint.com/docs/downloading-templates">API reference for template previewing</a>.</p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/liquid-currency-filters" class="astro-dr56dw7m">Liquid currency filters</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-05-14T00:00:00.000Z" class="astro-2oxtfctb"> May 14, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Display money values in your templates without the headaches. Teams can now convert numbers to formatted and localized currency strings with our new ‘currency’ Liquid templating filter.</p> <p><img src="https://assets.usewaypoint.com/liquid-currency-filter.png" alt="Liquid currency filter"></p> <p><em>Waypoint template builder using the new Liquid currency filter to format the variable output of <code dir="auto">10.5</code> to <code dir="auto">$10.50</code> (defaults to USD).</em></p> <p>Learn more about <a href="/docs/liquidjs-templating">using Liquid templating on Waypoint</a>.</p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/improved-api-request-logs" class="astro-dr56dw7m">Improved API request logs</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-03-12T00:00:00.000Z" class="astro-2oxtfctb"> Mar 12, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>To help devs monitor and debug Waypoint API requests, we’ve revamped our <a href="/docs/troubleshooting">API requests troubleshooting page</a> to include additional log information and permalinks to each request.</p> <p><img src="https://assets.usewaypoint.com/troubleshoot.png" alt="Request logs"></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/emailbuilderjs-open-source-email-template-builder" class="astro-dr56dw7m">EmailBuilder.js – open source email template builder</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-03-05T00:00:00.000Z" class="astro-2oxtfctb"> Mar 5, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>We’ve released a free and open source community version of our much-loved email template builder.</p> <p>We call it <a href="https://emailbuilderjs.com/">EmailBuilder.js</a> – a powerful block-based email builder that takes the best parts of other open source libraries like <a href="https://editorjs.io">Editor.js</a> and email component libraries and puts them into an easy to use no-code builder that dev teams can extend and self-host.</p> <p>Learn more:</p> <ul> <li><a href="https://emailbuilderjs.com/">EmailBuilderJS.com website</a></li> <li><a href="https://github.com/usewaypoint/email-builder-js">Open source GitHub repository</a></li> <li><a href="https://usewaypoint.github.io/email-builder-js/#sample/reservation-reminder">Demo/Playground</a></li> </ul> <video controls preload="metadata" style="display:block;margin:24px auto;max-width:100%;border-radius:8" title="EmailBuilder.js Video"> <source src="https://assets.usewaypoint.com/teaser-email-builder-js.mp4#t=0.001" type="video/mp4"> Your browser does not support the video tag. </video> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/improved-block-error-handling" class="astro-dr56dw7m">Improved block error handling</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2024-01-01T00:00:00.000Z" class="astro-2oxtfctb"> Jan 1, 2024 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Typos or simple syntax issues can easily happen when working with dynamic data on email templates. This can be frustrating if you’re unable quickly diagnose the problem. This is why we’ve added new error messages at the block level to help you get back on track quickly.</p> <video controls preload="metadata" style="display:block;margin:24px auto;max-width:100%;border-radius:8" title="Error handling video"> <source src="https://assets.usewaypoint.com/short-block-errors.mp4#t=0.001" type="video/mp4"> Your browser does not support the video tag. </video> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/unsubscribe-groups" class="astro-dr56dw7m">Unsubscribe groups</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2023-12-29T00:00:00.000Z" class="astro-2oxtfctb"> Dec 29, 2023 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Waypoint now supports unsubscribes. Teams can now use ‘<a href="/docs/unsubscribe-groups">unsubscribe groups</a>’ to append an unsubscribe link to a related set of emails.</p> <p>If a contact clicks the unsubscribe link, they will be opted-out and will not receive any additional emails with the matching unsubscribe group.</p> <p>Since Waypoint manages the unsubscribes and the unsubscribe page, teams can give their users the option to unsubscribe from a set of emails with a single line of code.</p> <video controls preload="metadata" style="display:block;margin:24px auto;max-width:100%;border-radius:8" title="Unsubscribe groups video"> <source src="https://assets.usewaypoint.com/teaser-unsubscribe-groups-voiceover.mp4#t=0.001" type="video/mp4"> Your browser does not support the video tag. </video> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/download-raw-liquidjs-templates" class="astro-dr56dw7m">Download &#39;raw&#39; LiquidJS templates</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2023-12-19T00:00:00.000Z" class="astro-2oxtfctb"> Dec 19, 2023 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>‘Raw’ templates are now available from a new Waypoint API endpoint.</p> <p>This means teams can now build email templates visually on Waypoint and then use our new API endpoint to programmatically grab the template with ready-to-process templating system (LiquidJS) with variables, loops, conditionals, and more.</p> <p>This is especially useful for teams sending sensitive data (eg. HIPAA compliance) and want to store email templates within their codebase.</p> <p><a href="https://www.usewaypoint.com/blog/an-email-template-builder-with-a-liquidjs-export">Learn more in our blog post</a></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/more-sample-templates-gallery" class="astro-dr56dw7m">More sample templates + gallery</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2023-11-29T00:00:00.000Z" class="astro-2oxtfctb"> Nov 29, 2023 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Starting with a blank template is always a challenge. This is why we’ve added 20+ more ready-to-edit templates on Waypoint. These templates cover a wide range of product-triggered emails that are commonly used across marketplaces, SaaS, and e-commerce applications. Use them to either get started faster or simply to serve as inspiration for your own templates.</p> <p>Simply choose from one of our new samples while creating a new template on Waypoint:</p> <p><img src="https://assets.usewaypoint.com/create-a-template-modal.png" alt="Create a new template modal screenshot"></p> <p>Not using Waypoint yet? View these templates on our new <a href="https://www.usewaypoint.com/templates">templates gallery page</a>. You can even download a free HTML export of the template for your own use!</p> <p><a href="https://www.usewaypoint.com/templates"><img src="https://assets.usewaypoint.com/gallery-outline.png" alt="Templates gallery screenshot"></a></p> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/batch-api-sends" class="astro-dr56dw7m">Batch API sends</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2023-11-14T00:00:00.000Z" class="astro-2oxtfctb"> Nov 14, 2023 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Sending a weekly report or recommendations email? Waypoint now supports batch email sending on our API so you can send multiple emails with highly personalized content with a single API call. <a href="/docs/sending-in-batches">Learn more in our docs</a>.</p> <div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.zlwos.css"><script type="module" src="/_astro/ec.8zarh.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="shell"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">curl</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">https://live.waypointapi.com/v1/sandbox/email_messages_batch</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">-H</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Content-Type: application/json</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">-u</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">API_KEY_USERNAME:API_KEY_PASSWORD</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">\</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#82AAFF;--1:#3B61B0">-d</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#984E4D">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"emailMessages": [</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"templateId": "wptemplate_RXL7zGTGsvkXzAP3",</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"to": "Jordan Isip &#x3C;jordan@usewaypoint.com>",</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"variables": {</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"username": "fixie"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">}</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">},</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"templateId": "wptemplate_RXL7zGTGsvkXzAP3",</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"to": "Carlos Rodriguez &#x3C;jordan@usewaypoint.com>",</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"variables": {</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">"username": "cohitre"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">}</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">}</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">]</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">}</span><span style="--0:#D9F5DD;--1:#111111">'</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="curl &#x22;https://live.waypointapi.com/v1/sandbox/email_messages_batch&#x22; \ -H &#x22;Content-Type: application/json&#x22; \ -u &#x22;API_KEY_USERNAME:API_KEY_PASSWORD&#x22; \ -d &#x27;{ &#x22;emailMessages&#x22;: [ { &#x22;templateId&#x22;: &#x22;wptemplate_RXL7zGTGsvkXzAP3&#x22;, &#x22;to&#x22;: &#x22;Jordan Isip <jordan@usewaypoint.com>&#x22;, &#x22;variables&#x22;: { &#x22;username&#x22;: &#x22;fixie&#x22; } }, { &#x22;templateId&#x22;: &#x22;wptemplate_RXL7zGTGsvkXzAP3&#x22;, &#x22;to&#x22;: &#x22;Carlos Rodriguez <jordan@usewaypoint.com>&#x22;, &#x22;variables&#x22;: { &#x22;username&#x22;: &#x22;cohitre&#x22; } } ] }&#x27;"><div></div></button></div></figure></div> </div> <footer class="astro-dr56dw7m"> </footer> </article> <article class="preview astro-dr56dw7m"> <header class="astro-dr56dw7m"> <h2 class="astro-dr56dw7m"> <a href="/changelog/navigator-drag-and-drop" class="astro-dr56dw7m">Navigator drag and drop</a> </h2> <div class="metadata not-content astro-2oxtfctb"> <div class="dates astro-2oxtfctb"> <time datetime="2023-11-03T00:00:00.000Z" class="astro-2oxtfctb"> Nov 3, 2023 </time> </div> </div> </header> <div class="sl-markdown-content astro-dr56dw7m"> <p>Sometimes while building email templates, you realize that certain sections would be better organized differently. Maybe it’s adding a parent container with a border or changing the layout to be presented in multiple columns. To help teams iterate faster, we’ve added drag and drop within our <a href="/changelog/template-builder-navigator">new Navigator feature</a>. This means your team can now easily reorder and restructure blocks with a simple drag and drop.</p> <video controls preload="metadata" style="display:block;margin:24px auto;max-width:100%;border-radius:8" title="Navigator drag and drop video"> <source src="https://assets.usewaypoint.com/short-navigator-dnd.mp4#t=0.001" type="video/mp4"> Your browser does not support the video tag. </video> </div> <footer class="astro-dr56dw7m"> </footer> </article> </div> <footer class="not-content astro-w2yzoj57"> <div class="pagination astro-q3jscx35" data-pagefind-ignore><div class="card-grid astro-zntqmydn"><div class="sl-link-card astro-mf7fz2mj"> <span class="sl-flex stack astro-mf7fz2mj"> <a href="/changelog/2" rel="next" class="astro-q3jscx35 astro-mf7fz2mj"> <span class="title astro-mf7fz2mj">Older posts</span> </a> </span> <svg aria-hidden="true" class="icon rtl:flip astro-mf7fz2mj astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.333em;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg> </div> </div> </div> </footer> </div> <footer class="sl-flex astro-3yyafb3n"> <div class="meta sl-flex astro-3yyafb3n"> </div> <div class="pagination-links print:hidden astro-u2l5gyhi" dir="ltr"> </div> </footer> </div> </div> </main> </div> </div> </div> </div> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10