Documentation
Every page in LaunchBeam
What each screen is for, who can open it, and what every control on it does. Written from the source code, so it describes the app as it actually behaves.
Contents
- The frame around every page
- 1. Public pages
- 2. Getting in — accounts, workspaces and invitations
- 3. Your two home screens
- 4. Launch — products
- 5. Launch — plan and assets
- 6. Grow — waitlist, campaigns, agents, schedule
- 7. Grow — email, contacts, partners, proof
- 8. Measure
- 9. Workspace — connections, referrals, settings
- 10. Pages your visitors and partners see
- 11. Endpoints you wire up yourself
- 12. Endpoints the app and your providers call
LaunchBeam — page-by-page guide
Every link in the app, what it is for, and what you can do on it. Written for the person using LaunchBeam, not for the person building it.
There are three kinds of entry here:
- Pages you open — everything in the sidebar, plus the public marketing and sign-in pages.
- Pages your visitors open — the waitlist page, press kit and unsubscribe page you publish, and the tracked links that sit inside your posts. You never open these yourself; they are what the outside world sees.
- Endpoints — addresses with no screen, that you or another service call. Only the first handful matter to you; the rest are listed so nothing in the app is undocumented.
The frame around every page
Every page inside the app sits in the same shell. On desktop a left sidebar carries the LaunchBeam mark, a workspace switcher (which also offers New workspace — or, once your plan's workspace allowance is used up, a locked row that sends you to billing instead), the two home rows, then the navigation grouped into Launch, Grow, Measure and Workspace, and a footer row showing your plan as a badge that links to billing. The top bar shows your role in the workspace, a light/dark toggle, and an account menu with your email, a sign-out button, and a Platform admin link that only appears for LaunchBeam staff. On narrow screens the sidebar becomes a hamburger menu opening the identical set of links as a drawer, so nothing is unreachable on a phone.
If your trial has ended or the subscription lapsed without an active one, an amber read-only banner sits under the header on every page with an Upgrade button, and write actions across the app refuse with "Workspace is read-only." You have to be signed in to see any of it — signed-out visitors are sent to the login page, and anyone with no workspace at all is sent to onboarding.
The public pages share their own smaller shell: the site fonts, dark mode as the default appearance (the header toggle switches it; there is no follow-my-system option), and the top-right corner notifications used for messages like billing errors.
One idea worth learning early: the focus product. Most pages in the Launch, Grow and Measure
groups are about one product at a time. They pick one for you and show which in the header,
and your choice is carried in the page address as ?product=…, so those pages can be bookmarked
and shared and will open on the same product.
1. Public pages
The site anyone can see without an account.
Landing page — /
Where: The front door of the site — where people land from a link, an ad, or by typing the domain. The LaunchBeam logo in the header and footer of every other public page returns here.
Access: Public, no account needed. It notices whether you are already signed in and swaps the "Sign in" and "Start free" buttons for a single "Open dashboard" button.
This is the sales pitch for LaunchBeam: one long scrolling page explaining the core promise — write one product brief, get launch copy for every channel, and never get an account banned because the tool faked automation a platform forbids. It walks through the three capability tiers (channels it publishes to for you, channels where it opens a prefilled composer, and channels where it hands you copy plus a reminder), the three-step workflow, what else ships in the box (launch directories, email drips, SaaS metrics, a conversion checklist), and a pricing teaser. The channel count, which platform sits in which tier, and the plan names and prices are all read from the same settings the product itself runs on, so they can't drift out of date.
What you can do here
- Start your free trial (hero and the final banner) — takes you to signup to create an account
- Start free (header, signed out only) — same signup page
- Launch honestly (mid-page honest-automation panel) — also goes to signup
- Start free trial (on each of the three pricing teaser cards) — also goes to signup
- Pricing (header) / See pricing (hero) / Compare plans (mid-page) / "See the full pricing breakdown →" (below the teaser cards) — all jump to the pricing page
- Sign in (header and the final banner) — goes to the login page; both become "Open dashboard" once you're signed in
- Toggle light/dark theme (header) — switches the whole site's appearance
- Footer links — Pricing, Start free, Dashboard, Sign in, Create account, Terms of Service, Privacy Policy
Good to know: The tier cards are honest about degradation — Facebook is labelled as falling back to a prefilled composer and Instagram to a copy-out reminder until you've connected credentials, Reddit as refusing subreddits that forbid promotion, and TikTok and YouTube as needing an audited/verified app. The scrolling platform strip, the compose window, the worker log and the analytics chart are illustrations, not live data. The header "Pricing" button is hidden on narrow phone screens; the footer link still gets you there.
Pricing — /pricing
Where: The "Pricing" button in the landing page header, the "See pricing" / "Compare plans" / "See the full pricing breakdown" links throughout the landing page, and the Product column of the footer on every public page. Also where Stripe returns you if you back out of checkout.
Access: Public — anyone can read the plans. Actually starting a purchase requires being signed in; if you are a member rather than an owner or admin of the workspace, the attempt fails with "Only owners/admins can manage billing."
The three paid plans side by side — Starter, Pro and Scale — each with its price, a one-line description of who it's for, and its headline limits. Pro carries a "Popular" pill. A monthly/annual switch flips every price on the page, and annual is pitched as two months free. The free trial plan is not shown here.
What you can do here
- Switch between Monthly and Annual — rewrites every price and changes what the buttons will buy; you can click either label or the switch itself
- Start free (shown when signed out) — sends you to signup instead of to payment
- Upgrade (shown when signed in) — opens Stripe to pay; if your workspace already has a live subscription it sends you to Stripe's billing portal to switch plans instead of selling you a second one
- Sign in / Dashboard (header) — goes to login, or straight to your dashboard if you're already signed in
- LaunchBeam logo — back to the landing page
- Footer links — Pricing, Start free, Dashboard, Sign in, Create account, Terms, Privacy
Good to know: Payment depends on Stripe being set up for the installation; if it isn't, the button fails with "Billing is not configured yet," and a plan whose Stripe price is missing fails with a message naming that plan and interval. If the Stripe portal can't host the switch, the plan change is applied directly and you're told it's done and prorated, then sent to your billing settings — the new plan can take a second or two to appear there. All three buttons are disabled while one is in flight ("Redirecting…"). This public page never marks a plan as your current plan, even when you're signed in.
Docs — /docs
Where: The Docs link in the Product column of the footer on every public page, and the Docs row at the bottom of the Workspace group in the dashboard sidebar — which opens it in a new tab, so you keep the screen you were on.
Access: Public. No account, no sign-in. Everything on it describes the product, so a prospect can read what they would be paying for before paying for it.
This page. It is the same guide you are reading now: every screen in LaunchBeam, who can open it, and what each control on it does. It is one long page rather than a set of small ones, so your browser's own find-on-page searches the whole product at once, and a contents list jumps between areas.
What you can do here
- Use the contents list — jumps to any area of the app; a rail down the left on a wide screen, and a "Contents" panel you tap open at the top of the page on a phone.
- Search the page with your browser's find — covers every page in the product in one pass, which is the fastest way to answer "where do I do X".
- Follow any heading link — the address bar updates, so a link to one section can be sent to someone else.
- Jump to Pricing or Start free from the header.
Good to know: The page is written from the app's source code and rebuilt from it, so it describes what the product actually does rather than what a spec once said. It documents the customer-facing product only — LaunchBeam's own back-office pages are deliberately left out.
Terms of Service — /terms
Where: The Legal column in the footer of every public page, and cross-linked from the Privacy Policy. Otherwise direct URL only.
Access: Public.
The full agreement covering a LaunchBeam workspace, written in plain language rather than boilerplate: what the product actually does, what it explicitly does not promise, and where the responsibility sits. The sections founders will care most about are acceptable use (platform rules, no vote manipulation, no purchased or scraped email lists, no removing the unsubscribe link), what happens when you connect a third-party account, who owns the content you put in, that AI drafts are suggestions you are the publisher of, and how trials, billing, cancellation and refunds work. Plan names, prices, the connected-platform list and the daily email ceilings are read from the product's own settings, so what you read here matches what the system enforces.
What you can do here
- Read the agreement — headings numbered 1 through 20, from who the terms are between to contact details
- Follow the link to the Privacy Policy — which the terms treat as part of the same agreement
- Toggle light/dark theme (header)
- LaunchBeam logo — back to the landing page
- Footer links — Pricing, Start free, Dashboard, Sign in, Create account, Terms, Privacy
Good to know: A warning at the top states this document is a draft written by engineers, not reviewed by a lawyer, and is not in force. The legal entity, registered address, governing law, courts, liability floor and all contact addresses are unfilled placeholders shown in square brackets, and the "Last updated" line is a placeholder too. It also states plainly that on the free trial, X (Twitter) cannot be used at all.
Privacy Policy — /privacy
Where: The Legal column in the footer of every public page, and cross-linked from the Terms of Service. Otherwise direct URL only.
Access: Public.
The privacy notice, split by who you are: people who hold a LaunchBeam account, and people who ended up on a founder's waitlist or mailing list (for whom the founder, not LaunchBeam, is answerable). It lists what is collected and why, each cookie by name with its lifetime, every outside company that touches the data (the database and auth host, Stripe, OpenAI, the transactional email provider, your own email provider, the queue service, and the platforms you connect), your rights and how to exercise them, retention periods, and the security measures in place.
What you can do here
- Read the policy — 16 sections, from the controller/processor split to contact details
- Follow the link to the Terms of Service
- Toggle light/dark theme (header)
- LaunchBeam logo — back to the landing page
- Footer links — Pricing, Start free, Dashboard, Sign in, Create account, Terms, Privacy
Good to know: Same draft warning as the terms, with bracketed placeholders for the entity, address, hosting regions, privacy/DPO/security contacts, transfer mechanism and record-retention period. The policy is candid about current gaps: there is no cookie consent mechanism yet (which it says is required before launching in the EU/UK), no one-click full account export, no self-serve delete-my-account button, no SOC 2 or ISO 27001 certification, and no automated pruning of older analytics rows. It also discloses that the launch-directory screens fetch each directory's favicon from Google, the only third-party request any page makes. The tracking-cookie lifetimes are computed from the settings that set those cookies rather than typed in by hand.
2. Getting in — accounts, workspaces and invitations
Sign in — /login
Where: "Sign in" links in the marketing site header and footer and on the pricing page, the "Sign in" link at the bottom of the signup form, "Back to sign in" on the password pages, the "Sign in to accept" button on an invitation page, after signing out, and automatically whenever a signed-out visitor tries to open anything inside the app.
Access: Public. If you are already signed in, opening it sends you straight to the dashboard.
This is the front door to your workspace. You type the email and password you signed up with and land in the app. If you were bounced here from somewhere else in LaunchBeam, signing in returns you to the page you were originally trying to open rather than dumping you on the dashboard.
What you can do here
- Enter your email and password — the two fields the form needs
- Sign in — signs you in and forwards you to wherever you were headed, or to the dashboard
- Forgot password? — opens the page that emails you a reset link
- Sign up free — switches to the account-creation form
- LaunchBeam wordmark — goes back to the public marketing home page
Good to know: If you arrive here after clicking an email link that could not be used (most often an account-confirmation link that expired or was already spent), a warning appears above the form explaining that, with a shortcut to reset your password. Wrong-password and unknown-account errors are shown in place, under the fields.
Create your account — /signup
Where: The "Start free" / "Create account" calls to action on the marketing home page and footer, the plan buttons on the pricing table (for signed-out visitors), and the "Sign up free" link on the sign-in form.
Access: Public. Already signed in, you are redirected to the dashboard instead.
This is where a founder creates a LaunchBeam account and starts the 14-day free trial — no card required. A workspace is created for you automatically the moment the account exists, so in the normal case you go from this form straight into a working dashboard.
What you can do here
- Enter your email and a password of at least 8 characters — creates the account
- Create account — either drops you into the dashboard immediately, or tells you to check your inbox and confirm first, depending on how this deployment is set up
- Terms of Service / Privacy Policy links — the agreements you accept by creating the account
- Sign in — switches to the sign-in form if you already have an account
- LaunchBeam wordmark — back to the marketing home page
Good to know: If you got here through someone's LaunchBeam referral link within the last 60 days, signing up is the moment that referral is credited to them. If the deployment requires email confirmation, nothing else happens until you click the link in that email.
Forgot your password — /forgot-password
Where: The "Forgot password?" link beside the password field on the sign-in form, the "Request a new one" link on the reset page, and automatically when a reset link you clicked turns out to be dead.
Access: Public.
When you cannot get in, this is the page that emails you a link to choose a new password. It answers the same way whether or not an account exists on that address, so it never confirms who does and does not use LaunchBeam.
What you can do here
- Enter your email address — the address the reset link is sent to
- Email me a reset link — sends the link and confirms that if the address has an account, mail is on its way
- Back to sign in — returns to the login form
- LaunchBeam wordmark — back to the marketing home page
Good to know: Requests are throttled — roughly five per quarter-hour from one connection, and three per hour for the same address from the same place — and you are told how long to wait. If this deployment has no email provider configured, the page says plainly that password reset email is not set up and to contact support, rather than pretending mail was sent. Arriving here from a dead reset link shows a banner explaining that the old link expired or was already used.
Choose a new password — /reset-password
Where: Only from the "Choose a new password" link in the password reset email. There is no link to it anywhere in the app.
Access: Public, and deliberately so — you are here precisely because you cannot sign in. It works even if you happen to be signed in on that browser already.
This is the last step of a password reset: you set a new password and are taken straight into the app, already signed in. The link from your email is what authorizes the change, so you never have to remember the old password.
What you can do here
- Enter a new password of at least 8 characters, then type it again to confirm — mismatches and short passwords are caught before your link is spent
- Set new password — saves it, signs out every other device and browser still holding a session on your account, and takes you to the dashboard
- Request a new one — always visible, in case the link dies while the form is open
- Send a new reset link / Back to sign in — the two ways out shown when the page is opened without a reset link attached
- LaunchBeam wordmark — back to the marketing home page
Good to know: Reset links work once and expire; opening this page without one (a bookmark, or a link a mail client mangled) shows a "This link no longer works" screen instead of a form. If the new password is refused for some reason, you get about ten minutes to try again on the same link before it is truly gone. The forced sign-out elsewhere is intentional and cannot be skipped — that is the point of a reset.
Email link handler — /auth/callback
Where: Only by clicking a link in an email LaunchBeam sent you — in practice the "confirm your account" link. Nobody types this address.
Access: Public by necessity, since it runs before you have a session.
There is no page here. It is the door that turns an emailed link into a signed-in session and then forwards you into the app, so the page you land on is already logged in.
What you can do here
- Nothing to click — a valid link signs you in and forwards you to the dashboard (or to whichever LaunchBeam page the link named); a link that cannot be verified drops you on the sign-in page with an explanation
Good to know: Password reset links deliberately do not come through here — they go to the reset page instead, so that mail scanners and link-preview bots cannot burn your one-time link before you click it.
Create your workspace — /onboarding
Where: Automatic — you are sent here if you are signed in but belong to no workspace at all. There is no navigation link to it.
Access: Must be signed in; signed-out visitors are redirected to the sign-in page.
A workspace is the container for everything you do in LaunchBeam — your products, campaigns and billing all live inside one. This screen exists for the rare case where you have an account but no workspace, and asks for a name so it can create one.
What you can do here
- Enter a workspace name — the button stays disabled until you type something
- Create workspace — creates it with you as owner, starts a 14-day trial on it, makes it your active workspace, and takes you to the dashboard
Good to know: Most people never see this page: a workspace is created for you automatically when your account is created. If you already own as many workspaces as your plan allows and open this page by hand, creating one fails with a message telling you to upgrade — the free plan includes one. Day to day, additional workspaces are created from the workspace switcher inside the dashboard, not here.
Workspace invitation — /invite/[token]
Where: The "Accept the invite" link in the invitation email an owner or admin sends from the team settings page.
Access: The page itself is public — anyone holding the link can read it. Actually joining requires signing in with the exact email address the invite was sent to.
This is what a teammate sees when they are invited into your workspace. It names the workspace and the role they are being given, and the whole page is a single decision: accept, or not. If the invite is stale it says so instead of offering a button that would fail.
What you can do here
- Accept invitation — shown when you are signed in; adds you to the workspace with the invited role, switches your active workspace to it, and opens the dashboard
- Sign in to accept — shown when you are signed out; sends you to the sign-in form and brings you back to this invitation afterwards
- Go to dashboard — the only button on an invalid, already-used or expired invitation
- LaunchBeam wordmark — back to the marketing home page
Good to know: Invitations expire after 7 days and can only be used once. If you are signed in under a different email than the one invited, accepting fails with a message naming the address the invite is for. The invitation email only goes out if the deployment has an email provider configured — the invitation is still created either way, and nothing in the team settings page shows or copies the link, so an unsent invite is effectively a dead end for the invitee.
Referral link — /join/[code]
Where: Referral links LaunchBeam users share themselves — copied from the referrals page in the dashboard, or posted through its X, LinkedIn and email share buttons.
Access: Public. The person clicking usually has no account yet, which is the whole point.
There is no page here either. Clicking someone's referral link quietly records that they sent you and then drops you on the LaunchBeam site, so that if you sign up later the referrer gets credit for it.
What you can do here
- Nothing to click — you are forwarded to the marketing home page, or to pricing or signup if the link was shared pointing there, with the referral remembered for 60 days
Good to know: A retired or mistyped code still lands you on the site rather than an error page. The first referral link you click wins — a later one does not overwrite it. Clicking your own link while signed in as its owner earns nothing, by design.
3. Your two home screens
Two homes, because they answer different questions. Dashboard is every product side by side. Overview is one product in depth.
Dashboard — /dashboard
Where: First row in the sidebar (top group, above "Overview"), and the page you land on after signing in. The marketing home page also has an "Open dashboard" button, but only once you're already signed in.
Access: Must be signed in and be a member of the workspace. Any member sees it, regardless of role. If the workspace has fewer than two products, it redirects straight to Overview — a portfolio view of one product is not a portfolio.
This is the whole-workspace view: every product you're running, side by side, answering "which of these is actually moving and which have I quietly abandoned". It doesn't go deep on any single product — it counts how many have a finished brief, a launch date, a generated plan, and have actually shipped, and tells you how many tasks are past their due date across all of them. Use it to decide which product deserves your attention today, then click through to work on it.
What you can do here
- Click the "Products" tile — opens the products list; the caption says how many briefs still have blank fields, or that they're all filled in
- Click the "Scheduled launches" tile — opens the products list; counts products whose launch date is still ahead, and the caption says how many have no date at all
- Click the "With a launch plan" tile — opens the launch plan; shows how many of your products have dated tasks out of the total
- Click the "Overdue tasks" tile — opens the launch plan; the tile turns red when anything is past due and says how many products are affected
- Read the "Setup progress" bars — the four gates (brief complete, launch date set, plan generated, launched) counted across the whole workspace, each counted independently, with a one-line reason under any gate that isn't full
- Read the "Stage mix" bar — how many products sit at Idea, Pre-launch, Launched and Growing
- Click a product name in "Launch readiness" — opens that product in Overview; up to five scored products are listed best-first with their score
- Click any row in the "Every product" list — opens that product in Overview; each row shows its stage, launch date in plain language, four filled-or-hollow dots for the four setup gates, and its overdue count (a dash when there is none)
- Click "Manage products" — opens the full products list
Good to know: Readiness scores here come only from what was recorded when you last opened a product in Overview, so a product you've never visited there shows as "not measured" rather than a bad score, and the card says how many are missing. The "Every product" list scrolls rather than truncating, so nothing is hidden behind a "see more". There are no trend or traffic charts on this page — that history isn't kept per product.
Overview — /dashboard/overview
Where: Second row in the sidebar (top group, under "Dashboard"). Also where /dashboard sends you if you have fewer than two products, and where every product row and readiness bar on the Dashboard links to (carrying ?product= so it opens that specific product).
Access: Must be signed in and be a member of the workspace. Any member sees it. Signed-out visitors go to login.
This is one product in depth: how long until it launches, how ready it is, what's overdue, and the single most useful thing to do next. Because everything on it is about one product, the page picks one for you and says why in the line under the product name — the soonest upcoming launch date wins, or failing that the most recently launched product still inside its 45-day post-launch window, or failing that your newest product. If you have more than one product, a dropdown next to the product name lets you switch, and that choice is remembered in the page address so you can bookmark or share it.
What you can do here
- Switch the focused product with the dropdown beside the product name — reloads the whole page for that product; hidden entirely if you only have one product, and the back button returns you to the previous one
- Click "Open the launch plan" — opens the dated task list for this product
- Answer "Is it live?" — appears only when the launch date has passed but the product is still marked idea or pre-launch; "Yes, it's live" flips the stage and unlocks review directories like G2 and Capterra on the plan, "Not yet" takes you to the product's launch settings
- Act on the overdue alert — lists up to three past-due tasks as links, with a button reading "Clear them" or "See all N overdue"; the explanation changes depending on whether you've launched yet
- Click the "Until launch" tile — opens the plan, or the product page if no date is set yet
- Click the "Waitlist" tile — opens your waitlist
- Click the "Tracked clicks" and "Signups" tiles — open analytics; after launch these count from launch day rather than all-time, and the labels change to say so
- Act on the single next-action card — one recommended step with a button; it prioritises overdue work during launch week, dated post-launch work once you've shipped, and otherwise the readiness gap worth the most points
- Read the launch readiness card — score, movement since the last recorded snapshot with the real window ("this week", "since Mar 3"), and the three biggest categories holding it down
- Click a category in the readiness card — jumps straight to the page where you close that gap; a "See all 8" link opens the plan for the rest
- Open a task from "Next up" — the next three open tasks, soonest deadline first, each with its own button; a footnote counts tasks that are blocked on someone else and deliberately kept off the list
- Click "Generate the plan" — appears in "Next up" when no plan exists yet; takes you to the plan builder
- Watch the usage bars — AI credits, products, campaigns, waitlist signups and contacts against your plan's limits; an "Upgrade" link to the pricing page appears next to any that reaches 80%
- Follow the getting-started steps — with no products at all the page becomes a three-step setup card: create a product, pick a pace and launch date, connect a posting channel
Good to know: With no products, every number here would be zero, so the page shows the setup guide instead. If the address contains a product that isn't in this workspace, it quietly falls back to the automatic pick rather than erroring. In a read-only workspace you still see the readiness score but it stops being recorded, so the trend freezes until billing is sorted, and the "Yes, it's live" button is disabled. Usage bars reset at the start of each billing period, and a stale counter from last month correctly reads as zero rather than showing a full red bar.
4. Launch — products
A product brief is the source every piece of generated copy draws from. Time spent here pays out on every other page.
Products — /dashboard/products
Where: Sidebar, "Launch" group → "Products". Also reachable from any link that names a product elsewhere in the app.
Access: Must be signed in and be a member of the current workspace; signed-out visitors are sent to the login screen, and anyone with no workspace at all is sent to onboarding. Only the products belonging to the workspace you currently have active are listed, even if you belong to several.
This is the master list of everything you're marketing, and it doubles as the source of truth every piece of AI-written content is drawn from. Each card shows the stage, what the launch date means today, the audience, how many features are recorded, and how much of the brief you've actually written — so you can tell at a glance which product will produce vague copy because half its fields are blank. Once you have more than a handful, the search box, stage chips and sort control turn it from a wall of identical cards into something you can narrow.
What you can do here
- New product — opens the blank brief form to add another product.
- Search box — narrows the list as you type, matching name, tagline, description, audience, URL, features, product type and stage; every word you type must match, so two words narrow rather than widen.
- Type filter — limits the list to one kind of product (SaaS, mobile app, newsletter, and so on). It only appears when the workspace uses more than one type, and it only offers the types in use.
- Sort — "Recently added" (the default), "Name A–Z", "Launch date" (soonest first, undated products sink to the bottom), or "Least complete" (emptiest briefs first, which turns the page into a to-do list).
- Grid / list view toggle — switches between cards and a denser one-line-per-product list.
- Stage chips (All, Idea, Pre-launch, Launched, Growing) — each carries the number of products you'd get by clicking it, so the row also tells you the shape of your portfolio; a stage with nothing in it is greyed out and unclickable.
- Clear filters — resets search, stage and type in one click; it appears only once something is filtered, and a "Showing X of Y products" line appears alongside the results.
- Click any card or row — opens that product's detail page.
- Launch-conflict banner links — when two of your products share a root domain and both have launch days, a warning names the blocked launch, which product is blocking it, and the earliest date it can go up; the links jump to the affected plan and to the other product.
Good to know: The completeness meter counts six brief fields — tagline, description, URL, audience, features and brand voice — and shows a fraction out of six; when exactly one is missing it names it ("Missing a URL"), otherwise it says how many are missing and hovering lists them. The product's name isn't counted, since it can't be blank. With no products at all you get an empty state pointing at the create form; filter everything out and you get a "No products match" panel with a clear-filters button. Searching and sorting happen instantly in your browser over the full list, but your choices aren't remembered — reloading returns to the default view. The conflict banner is hidden entirely unless two products collide, and it's a warning about an outside platform's rules, not something LaunchBeam blocks.
New product — /dashboard/products/new
Where: The "New product" button on the Products page, or the "Create your first product" button in its empty state.
Access: Must be signed in and be a member of the current workspace. The form will refuse to save if your workspace is read-only (a trial that has ended without a paid plan) or if you've hit your plan's product allowance.
This is where you tell LaunchBeam what you're marketing. Only the name is required, but the tagline, audience and features are what every directory pitch, generated post and press-kit paragraph is built from, so anything you leave blank is something the AI has to invent or omit later. Below the form you can read the three launch paces side by side — you don't choose one here, but the trade-offs are worth reading while the choice is still free.
What you can do here
- Product name (required) — the only field you must fill in.
- Product URL — must be a complete web address starting with http:// or https://; anything else is rejected with an explanation, because this link is what your public short links redirect to.
- One-liner / tagline — the single sentence that ends up copied into directory listings.
- Full description — the longer pitch.
- Target audience — who it's for.
- Key features, one per line — leading dashes or asterisks are stripped, and only the first eight lines are kept.
- Brand voice: tone, words and phrases to avoid, and voice examples — the sample of your writing the AI matches.
- Create product — saves the brief and takes you straight to the new product's page with the pace step in front of you.
- Read the three pace cards — Aggressive (2 weeks), Balanced (5 weeks) and Thorough (9 weeks), each listing what it gives up and how many days of runway it allocates. On this page they're for reading only; nothing is selectable until the product exists.
Good to know: If your plan's product limit is already used up, saving fails with a message naming the limit and telling you to upgrade — the trial allows one product, and paid tiers allow three, ten, or unlimited. If your trial has lapsed, the save is refused as read-only. The product type, stage, launch date and pace are not on this form — they're set on the product's own page after it exists.
Product detail — /dashboard/products/[id]
Where: Click any product on the Products page; you also land here automatically right after creating a product, with the pace step pulled to the top. Linked from the launch-conflict banner and from anywhere else that names a product.
Access: Must be signed in and be a member of the workspace that owns the product — opening another workspace's product by URL shows a not-found page rather than rendering it. The conversion-tracking secret is readable only by workspace owners and admins. If your trial has lapsed, the launch-setup controls and the plan button are disabled and every save is refused.
This is the full record for one product: the brief the AI writes from, the four settings the launch plan is built from, and the key your own app uses to report signups and revenue back. It's the page you come back to whenever the pitch changes, the launch date moves, or you want to rebuild the plan. Right after you create a product, the launch setup is shown first — because picking a pace is the decision that determines what the next several weeks look like.
What you can do here
- Edit the product brief — name, URL, tagline, description, audience, features and brand voice — and Save changes; you get a confirmation toast when it saves.
- "What are you launching?" — picks the product type, which chooses the plan template (a mobile app gets store screenshots and review slack, a newsletter gets three issues and a subscribe page).
- "Where is it now?" — sets the stage from idea through growing; review directories stay out of the plan until there are customers to ask.
- Launch date — sets the target day, and the line beneath tells you how many days out that is, or warns that the date has passed and suggests moving it or setting the stage to launched. Leaving it blank is allowed; tasks then show as offsets like "3 weeks before launch".
- Pace picker — choose Aggressive, Balanced or Thorough. Each card lists what that pace forfeits, and once a launch date is set the cards show the real runway your date leaves alongside the nominal window, plus a separate list of what's forfeited no matter which you pick.
- Save launch setup — only enabled once you've actually changed something; an "Unsaved changes" note appears until you save.
- Generate plan — turns those four settings into a dated task list and reports how many tasks it produced and how many the new pace dropped, keeping your completed tasks ticked. If a plan already exists this becomes "Open the plan" instead.
- Plan — jumps to this product's launch plan.
- New campaign — starts a campaign pre-filled with this product.
- Generate secret / Rotate secret — creates the key your app must send when it posts trials, purchases or any money-bearing event back to LaunchBeam.
- Reveal / Hide and Copy — show or copy the secret so you can paste it into your app's environment (owners and admins only, once a secret exists).
- Delete (trash icon) — asks for confirmation, then permanently removes the product along with its campaigns, posts and schedule.
Good to know: Until a conversion secret exists, trials and purchases posted to the conversion webhook are rejected rather than counted — the links they're attributed from are published in public directory listings, so revenue events have to prove they came from you. Rotating replaces the old secret instantly: anything still sending the old one starts being refused until you update it. Members who aren't owners or admins never see the secret at all — the card reads "Not enabled" for them regardless, and pressing Generate returns an admins-only message. In a read-only workspace the secret card shows no buttons, and the brief form still looks editable but saving fails with a read-only message. Deleting a product cannot be undone, and the dialog stays open with an explanation if the delete is refused rather than silently claiming success. The brief and the launch setup are separate forms on the same product — saving one never overwrites the other.
5. Launch — plan and assets
Launch plan — /dashboard/plan
Where: Sidebar, under the "Launch" group, labelled "Launch plan". Also linked from Overview and from a product's own page; the URL carries a ?product= to pick which product's plan you're looking at.
Access: Must be signed in and a member of a workspace. Signed-out visitors are sent to the login page, and anyone without a workspace is sent to onboarding. Any role can open it; if the trial has lapsed without an active subscription the whole workspace is read-only and every control here is disabled.
This is the dated to-do list for one launch, built from what you're launching, how fast you want to move, and the day you're aiming at. It puts the overdue and due-today work at the top, then groups the rest into phases — Prepare, Audience, Submit, Launch week, After launch, Growth — in the order it has to happen. Each row can carry a real calendar date, a link straight to the screen where the work gets done, and a status you set as you go. If you change the pace, the date, the product type or a directory setting after the plan was built, the page tells you exactly what has drifted and offers to rebuild.
What you can do here
- Switch products with the Product dropdown — reloads the page with that product's plan.
- Choose a pace (Aggressive — 2 weeks / Balanced — 5 weeks / Thorough — 9 weeks) — each card states the runway your date actually leaves and lists, in plain terms, what that choice forfeits; picking one changes which tasks get generated.
- Set "What are you launching?" — swaps the whole template (a mobile app gets store screenshots and review slack; a newsletter gets three issues and a subscribe page).
- Set "Where is it now?" (stage) — review-driven directories stay out of the plan until you have customers to ask.
- Set or clear the launch date in the same panel — turns every task's "3 weeks before launch" offset into an actual day.
- Save launch setup — writes those four choices; the button stays disabled until something actually changes, and the page then flags that the stored plan is out of date.
- Set a date from the "Pick a launch date" card — only appears when the product has no date; saving here explicitly does not rewrite your tasks.
- Generate plan / Regenerate — builds or rebuilds the task list; anything you marked doing, done, blocked or skipped keeps its status, and only untouched template tasks that no longer apply are removed.
- Change a task's status (To do, Doing, Blocked, Done, Skipped) — updates progress and the completion percentage at the top.
- Mark a task Blocked — you must type what it's blocked on before it will save; the reason shows on the row with a "Change" link to edit it later.
- Open a task's action button — jumps to the LaunchBeam screen or external site that task is about.
- Open "Edit the product brief" at the foot of the page — for when a task is quoting the wrong tagline.
Good to know: With no products at all the page is just an empty state pointing at product creation. Tasks pointing at a directory your current pace can't reach show a warning badge and a substitute suggestion instead of a date you can't hit. Directories that are retired, or that are premium and above your plan, are excluded from the plan entirely. Skipped tasks leave the completion denominator rather than dragging it down.
Landing page — /dashboard/landing
Where: Sidebar, under "Launch", labelled "Landing page". Also the destination of a launch-plan task and of the "next action" prompt on Overview. Takes a ?product= to choose the product.
Access: Signed in and a member of a workspace; otherwise redirected to login or onboarding. Any role can edit. Read-only workspaces (lapsed trial) can view everything, but generating, saving and ticking are refused with an error rather than being greyed out.
Two side-by-side panels for making your landing page actually convert. On the left, AI writes a full set of conversion copy for the product — headline, subhead, call-to-action text, benefit bullets, reasons to choose you, three social-proof lines, a guarantee and a pricing anchor — each with its own copy button so you can paste them straight into your site. On the right, a checklist of ten proven landing-page tactics with what each one is, why it works and an example, which you tick off as you apply them.
What you can do here
- Switch products with the Product dropdown — reloads with that product's copy and checklist.
- Generate copy / Regenerate — asks the AI for a fresh set of conversion copy and saves it; regenerating replaces what was there.
- Copy any single field — puts that line on your clipboard.
- Copy a whole list (Benefits, Reasons), or any single line within it — copies every line at once, or just that one.
- Toggle any of the ten checklist tactics — saves your progress and updates the "x / 10 done" counter.
Good to know: The generate button is disabled and a note appears when no AI provider is configured for the install. Higher plans get a better generation tier, and every generation is metered against your plan's credit allowance — hitting the limit comes back as an error rather than copy. With no products the page shows an empty state pointing at product creation.
Images — /dashboard/images
Where: Sidebar, under "Launch", labelled "Images". Also linked from the directories page ("see what's missing", shown only when something is blocked), from the press kit's requirement list, and from inside a directory row's image checklist and attach dialog. Takes a ?product=.
Access: Signed in and a member of a workspace. Any role can upload and edit. Read-only workspaces see a notice in place of the uploader and cannot edit or delete images.
One library of every launch asset for a product — logo, app icon, screenshots, gallery images, OG image, banner, demo GIF, founder photo, other — checked against what the directories you're tracking actually demand. Above the library, a single deduplicated list answers "what do I still have to make", giving exact pixel sizes where the directory publishes them, so you don't discover a missing 1270×760 gallery image inside a submit form. Every file shows which requirements it satisfies.
What you can do here
- Switch products with the Product dropdown.
- Choose "Upload as" — sets the kind for the files you're about to add, or leaves it to be detected from the dimensions.
- Drop files or choose files — uploads them one at a time with per-file progress, reading the real pixel dimensions from each file; "Clear" empties the progress list afterwards.
- Read "What your directories ask for" — each requirement shows whether it's covered, whether it's optional, which directories want it, and whether the size was ever published.
- Change any image's kind — re-matches it against directory specs (mislabelling a screenshot as "Other" makes a directory look unsatisfiable).
- Add alt text to an image — several directories reject a listing without it.
- Change an image's order number — sets the order files appear in, and the order a gallery is attached in; whole numbers 0–999 only.
- Open an image — the full-size original opens in a new tab.
- Delete an image (with confirmation) — removes the file and the library entry; any submission that listed it loses the reference.
Good to know: Only PNG, JPEG, WebP and GIF are accepted, up to 10 MB each, and the server checks the actual bytes rather than the filename — a mislabelled file is rejected. If the browser can't read a file's dimensions the image is still stored, it just gets skipped by the spec checks. Retired directories stop demanding images. Members can only delete files they uploaded themselves; anything else needs an admin, and you get told so rather than losing the library entry. Deletion is not reversible.
Press kit — /dashboard/press-kit
Where: Sidebar, under "Launch", labelled "Press kit". Also the destination of a launch-plan task, and linked from the Testimonials page. Takes a ?product=.
Access: Signed in and a member of a workspace. Editing and saving is available to any member; publishing and unpublishing is owner-or-admin only (the switch is disabled for members with an explanation). Deleting is admin-only and comes back refused with a message if a member tries. Read-only workspaces cannot save, publish or delete.
Everything a journalist, podcast booker or directory editor means when they ask you for "materials", filled in once and published at a public link. You write the headline, the About paragraph they'll paste verbatim, your founder name and bio, and a press contact address. A side panel shows the live/private state, the public URL, and a five-point list of what reporters ask for — About paragraph, press contact, a logo or app icon, a social card image, and at least one cleared quote.
What you can do here
- Switch products with the Product dropdown.
- Set the public URL slug — leave it blank on the first save and one is minted from the product name plus random characters.
- Write the headline — becomes the page title and the social card text.
- Write the About paragraph — with a live word count that warns below 30 words ("usually too short to quote") and above 90 ("most outlets will cut this down").
- Fill in founder name, founder bio and press contact email — the email is published on the page and checked for obvious typos.
- Save changes / Create press kit — writes the kit and mints the URL on first save.
- Flip the "Publish this press kit" switch — turning it on makes the public page readable and indexable; turning it off takes it down immediately. Disabled until the kit has been saved once.
- Copy link — puts the public URL on your clipboard (available as soon as a kit exists, published or not).
- Open public page — opens the live kit in a new tab; only shown while published.
- Delete press kit (with confirmation) — removes the copy and stops the public URL resolving. Only appears once a kit exists.
- Follow "Fix it" on a missing logo, social card or cleared quote — jumps to Images or Testimonials for that product. The About-paragraph and press-contact rows have no link; you fill those in on this page.
Good to know: Publishing is refused until both a headline and an About paragraph exist. Once the kit is live the slug field is locked — unpublish before changing it, because links already sent to press would break. Deleting is irreversible: the URL stops resolving and the slug is released for anyone else to claim. Quotes only count toward the requirement, and only appear publicly, if they are both published and marked as having the author's permission.
Directories — /dashboard/directories
Where: Sidebar, under "Launch", labelled "Directories". Takes a ?product= and a ?status= filter in the URL.
Access: Signed in and a member of a workspace. Read-only workspaces can browse but every row control is disabled. Six high-value built-in destinations (Product Hunt, Hacker News, BetaList, AppSumo, G2, Capterra) are locked on plans without the premium-directories feature — the rows still show, but their controls are disabled and an upgrade link appears inside the row.
The full map of where to submit your product — launch platforms, AI directories, alternative sites, review and business directories, communities, subreddits, marketplaces, curators and platform stores — grouped by how far ahead of launch each one needs to be started. Each row carries its lead time, its cost, what blocks it (an account-standing minimum, an invite, an application, or needing customers first), whether your images clear its requirements, and ready-to-paste submission copy tailored to that destination. Four counters at the top tell you how many are submitted or live, how many are confirmed live, how many gates you're not through yet, and how many rows are blocked on an image you haven't made.
What you can do here
- Switch products with the Product dropdown.
- Filter by status (All / To do / Submitted / Live / Rejected / Skipped) — narrows the list while the band chips and top counters keep describing the whole list.
- Add custom directory — records a promo site that isn't built in, with its URL, submit URL, category, audience, lead time and blocker; visible only to your workspace. The button is shown to everyone, but only an owner or admin can actually save one.
- Expand "Start about N weeks before launch" — the plain-English playbook of what to do when.
- Open or collapse a timing band — each band explains why its destinations belong at that point in the runway and shows live / submitted / rejected / to-do counts.
- Set a row's status — records To do, Submitted, Live, Rejected or Skipped; the first move to Submitted or Live stamps the date and mints a tracked link for that listing.
- Open the submit page from a row — opens the destination in a new tab, with your title (and often the body) already prefilled where the site supports it.
- Tick "I already have an account here" / "I'm already a member" — on standing- and invite-gated rows only; moves the row into a nearer band and makes the launch plan schedule a real post instead of a substitute.
- Work through "What you'll post" field by field — "Copy next" copies the current field and advances, the
ckey does the same andShift+Csteps back; each field shows a character count against the destination's limit, and "Start over" resets the loop. - Edit any submission field in place — your wording saves on blur, is stored per directory and marked "Edited"; "Reset" puts the generated text back.
- Expand a long field with "Show all" / "Show less", and open a destination's own rules in a new tab where the guidance links to them.
- Copy all as one block — for the few destinations that really are one big textarea.
- Attach images to a submission — records which files you actually sent, with green marks on files that match a requirement.
- Copy a matching image's URL, or save the file, straight from the row's image checklist; unmatched requirements link to the image library instead.
- Add notes and a listing URL — the listing URL field appears once the status is Submitted or Live, and becomes a "View listing" link.
- Remove directory (admins, custom rows only) — deletes it for every product in the workspace along with its submission tracking.
Good to know: The guidance line on a destination that forbids self-promotion is deliberately not editable — it's ours, not submission copy. A retired directory disappears from the list unless you already recorded a status against it, in which case the row stays with the reason spelled out and the outbound link removed, so your history isn't deleted. Lead times are ordering hints, not SLAs — no directory publishes a real one. The budget strip separates money already committed from money you could spend without ever summing the two, and it disappears entirely when nothing on your list costs anything. Prices are read off each site and dated on the row; check before spending. Removing a custom directory cannot be undone.
6. Grow — waitlist, campaigns, agents, schedule
Waitlist — /dashboard/waitlist
Where: Sidebar, "Grow" group → Waitlist.
Access: Must be signed in and a member of the workspace. Signed-out visitors are sent to the login page; an account with no workspace is sent to onboarding. Everyone in the workspace can view the signups and edit the page copy, but only an owner or admin can publish or delete the page.
This is where you collect emails before launch and watch the list grow. One product at a time: you pick a product, create a waitlist page for it, write the words visitors will read, then flip it live at its own public link. Once people start joining you get the signup list, a leaderboard of who is bringing friends in, and a few numbers that tell you whether the list is worth anything.
What you can do here
- Switch product with the product dropdown — reloads the page against that product's own waitlist and signups.
- Create waitlist page (shown when the selected product doesn't have one) — makes the page immediately and keeps it offline until someone publishes it.
- Copy link — puts the public URL on your clipboard.
- View page — opens the live public page in a new tab; only shown once the page is published.
- Published switch — turns the public page on or off; switching it off makes the URL return "not found" straight away. Owners and admins only; everyone else sees a line saying why it's disabled.
- Delete page (trash icon, owners and admins only) — asks to confirm first, and tells you how many signups it will delete along with the page.
- Signups tab — five headline numbers: how many are in line, signups in the last 7 days against the 7 before, the share who arrived through a referral, how many you've marked invited, and the share who converted.
- Search signups by email or name — filters the table as you type.
- Export CSV — downloads the whole list as a spreadsheet file that opens cleanly in Excel.
- Mark someone invited (paper-plane icon) — records that you let that person into the beta; it does not send them anything.
- Mark someone converted (tick icon) — records that they became a real customer, which is what drives the conversion number.
- Remove someone from the line / put them back (person icon) — removing takes them out of the count and moves everyone behind them up one; putting them back adds them at the end.
- Show more — loads the next 50 signups.
- Top referrers panel — ranks the people who brought in the most signups, and says so plainly when referral links are switched off.
- Page tab — edit the headline, subhead, button label and confirmation message, then Save changes. Blank fields fall back to your product's own words, shown as placeholder text.
- Public URL field — change the part of the link after the slash; saved with the same Save button.
- "Ask for a first name" and "Give everyone a referral link" switches — these save the moment you flip them, with no Save button.
- Hero image picker — pick any image from the product's library, or "No image"; saves on click. With no images uploaded you get a link to go add some.
Good to know: With no products in the workspace at all, the page is just a prompt to create one first. Changing the URL after you've shared it dead-links every share already out there. Waitlist signups count against a per-workspace plan allowance across all your products — from 80% you get a warning banner, and at 100% the public page quietly stops accepting people, which this banner is the only place you'll find out about. If billing has lapsed the workspace is read-only and every control here refuses to save — except Export CSV, which deliberately still works.
Campaigns — /dashboard/campaigns
Where: Sidebar, "Grow" group → Campaigns. Also linked from the Schedule page's empty state.
Access: Must be signed in and a member of the workspace.
A simple list of every launch campaign you've made, newest first. Each row shows the campaign name, whether it's a draft, scheduled, live or completed, which product it's for, how many posts it contains, and when it was created. Click a row to open it and start editing and scheduling the individual posts.
What you can do here
- New campaign — starts the generator.
- Click any campaign — opens that campaign's posts for review and scheduling.
Good to know: With nothing created yet you get an empty state with a single button to create your first campaign.
New campaign — /dashboard/campaigns/new
Where: The "New campaign" button on the Campaigns list, or its empty-state button.
Access: Must be signed in and a member of the workspace. A workspace whose subscription has lapsed can open the page, but generating is refused.
Pick a product, name the campaign, and tick the platforms you want to launch on; the app then writes a separate draft in each platform's own style and drops you straight into the campaign for editing. Platforms are grouped by how far the app can take them for you — ones it can publish itself, ones where it hands you a prefilled composer, and ones where it just gives you the assets and a reminder.
What you can do here
- Choose a product from the dropdown.
- Name the campaign.
- Tick or untick platforms — three come pre-selected. Platforms your plan doesn't include show a padlock and can't be ticked at all; clicking one tells you it's on paid plans.
- Generate campaign — creates everything and takes you to the campaign page. If some platforms had trouble you get a warning telling you how many.
Good to know: If no AI provider is configured, a note says so up front and the campaign is created with placeholder drafts instead of real copy. Creating a campaign counts against your plan's campaign allowance and is refused with an upgrade message once you hit it. Without a product yet, the page just shows a prompt to create one first.
Campaign review — /dashboard/campaigns/[id]
Where: Clicking a campaign on the Campaigns list, automatically after generating a new campaign, or via the "Open" link on a row of the Schedule page.
Access: Must be signed in and a member of the workspace. A campaign belonging to another workspace returns "not found".
This is where a generated campaign becomes real posts. Each platform gets its own card with the draft text, a character counter that knows that platform's rules, whatever media it needs, and a date picker to schedule it. Nothing goes out until you schedule it, and depending on the platform, your connections and your plan, scheduling either publishes automatically or sends you a reminder with everything prefilled.
What you can do here
- Edit the draft text for any platform — a Save button appears once you've changed something. The counter turns red when you're over the platform's limit, and saving over the limit warns you by how much. Where a platform's limit only governs one field, or where the draft posts as a thread, the counter says so instead of pretending the whole box is capped.
- Pick a variant (when more than one was generated) — swaps the draft to that angle.
- Fill in platform-specific fields the copy can't carry (a target subreddit, for example) and save each one — an amber "Needs your input" note names exactly what's still missing, and the post can't be scheduled until it's filled.
- Attach images from the product's image library — a picker showing everything on that product. A note appears if the platform only auto-publishes text, and if the product has no images there's a link to add some.
- Upload a video — on platforms that take one, with the accepted formats and a 50 MB limit stated. Removing it deletes the file unless another post still uses it.
- Attach or remove a YouTube link — appended to the post when it goes out.
- Re-check rules — re-runs the platform's own pre-flight check (today that's the target subreddit's rules and allowed post types) and shows blocking problems, warnings and all-clears above the draft.
- Tick off the "Before you post" checklist items — saved as you go, on platforms that generate one.
- Copy — puts the draft on your clipboard.
- Open composer — opens the platform's own posting screen with your content prefilled.
- View live — opens the published post, once it has gone out.
- Pick a date and time, then Schedule auto-publish or Schedule reminder — the button names which one you'll get.
- Unschedule — takes a scheduled post back off the queue.
- Delete campaign (trash icon in the header, next to the status badge) — asks to confirm, then removes the campaign, all its posts and everything scheduled from them.
Good to know: The schedule button stays disabled until every required field is filled and saved — editing the text without saving isn't enough, because scheduling sends what's stored. A blocking rule violation (no target subreddit, a private sub) refuses the schedule outright rather than queuing it. Auto-publishing is a paid feature: on a plan without it, even a connected platform degrades to a reminder, and the card shows a padlock badge saying so. Video uploads need the Pro plan; without it the upload button is replaced by an upgrade link. An auto-publishing platform with no connection set up shows a "Not connected" badge.
Marketing agents — /dashboard/agents
Where: Sidebar, "Grow" group → Agents.
Access: Must be signed in and a member of the workspace, and the workspace needs two separate things: a plan that includes marketing agents, and a private-beta enrollment that only the LaunchBeam team can grant. Missing the plan shows an inline upgrade prompt in place of the whole panel; having the plan but no enrollment shows a "private beta" explanation instead. A workspace whose billing has lapsed sees a read-only notice rather than either. Changing settings, approving and rejecting are owner/admin only.
An agent that reads your own call transcripts and notes, pulls out what customers actually said, and drafts LinkedIn posts in one named person's voice — then stops and waits for you. Nothing it writes reaches LinkedIn without an explicit approval, and an approved post goes out through exactly the same schedule as anything you write yourself. It also reports back on what the posts did once they're live.
What you can do here
- Switch product — everything on the page is scoped to one product.
- Turn the agent on or off (owners and admins) — saving it switched on is refused unless both token budgets are above zero.
- Set the per-run and per-month token budgets, how many drafts each run produces, who the posts are written as (one of your authors, or the product's own brand voice), the earned-media comparison rate, and how many days to keep tracking each post's numbers — then Save settings.
- Watch the month's token usage bar — appears once a monthly budget is set, and turns red past 90% of it.
- Run now — starts a run; drafts appear in the queue when it finishes. Only available while the agent is switched on, and refused if that agent already has a run in progress or waiting on approvals.
- Approve & schedule a draft (owners and admins) — turns it into a real scheduled post.
- Reject a draft (owners and admins).
- Edit a draft (any member) — saving replaces it with a fresh draft that still has to be approved, because an approval is a decision about one specific piece of text. The editor shows a live count against LinkedIn's 3,000-character ceiling.
- Set a publish time on a draft — also re-proposes it, so the new version needs approving.
- Add source material — paste notes or a transcript, upload a .txt/.md/.csv up to 2 MB, or give it a public web page to read.
- Remove a source from the library.
- Add or edit an author — their name, role, what they know first-hand, how they sound, phrases they must never use, and a few lines they actually wrote. Below the form, the agent lists the insights it has pulled out so far, each with a quote from the source it came from.
- Cancel a run that's still queued, running or waiting on approvals — from the run history, which also shows each run's status, step, token spend and outcome.
- Read the results table — tracked clicks and attributed signups per post, plus LinkedIn's own impressions and reactions where available, and a link to each post on LinkedIn.
Good to know: With no products in the workspace, the page is just a prompt to create one. Approvals expire after 24 hours; an expired one can't be approved and you have to run the agent again. Phrases you list under "never use" block a draft outright rather than just flagging it; softer warnings are shown on the draft and approving accepts them. A draft that ended up marked "needs review" was handed to LinkedIn and never confirmed — check your profile yourself, because nothing is retried automatically. Audio and video files aren't supported; export the transcript and paste the text. Uploading the exact same material twice is refused as a duplicate. LinkedIn only shares impression and reaction data with approved apps, so a workspace without that permission sees an explicit "not available" rather than a misleading zero, and the earned-media dollar figure is always labelled a comparison and never counted as revenue.
Schedule — /dashboard/schedule
Where: Sidebar, "Grow" group → Schedule. Also linked from the footnote at the bottom of the Agents page.
Access: Must be signed in and a member of the workspace. Anyone can see the page and the automation switch, but only an owner or admin can actually flip it.
Everything queued across all your platforms, in the order it will run, with the time, whether it will publish itself or just ping you, and where it has got to. Above the list sits the master switch for the whole workspace — and, next to it, an honest statement of whether anything is actually listening for these jobs at all.
What you can do here
- Workspace automation switch (the kill switch) — pauses or resumes this workspace's scheduled posts, sequence emails, broadcasts and agents, immediately and with no confirmation step. Read-only metrics and analytics keep running. Only owners and admins can use it; anyone else gets an error message.
- Read the queue status line — tells you plainly whether publishing is live (and how many workers and waiting jobs), whether nothing is consuming the queue, whether it can't tell, or whether the queue is unreachable, along with the exact command to fix it.
- Read each row — the platform, the campaign it belongs to, the exact run time, an Auto-publish or Reminder badge, its current state, and any error the last attempt returned.
- Open — jumps to the campaign behind any scheduled row, where you can unschedule or reschedule it.
Good to know: The kill switch only affects your own workspace and only reports your own pause setting — it can't tell you whether a worker is running, which is what the status banner above the list is for. Pausing is always allowed, even on a lapsed subscription; resuming is not. Rows saved while the queue was unreachable are flagged individually as "never queued" — nothing re-queues them later, so you have to unschedule and schedule them again from the campaign. If the schedule can't be read at all the page says so explicitly rather than pretending nothing is scheduled.
7. Grow — email, contacts, partners, proof
Email sequences — /dashboard/sequences
Where: Sidebar, under Grow → Email sequences.
Access: Must be signed in and belong to a workspace. Signed-out visitors are sent to the login page; someone with no workspace yet is sent to onboarding.
This is where you build the automated emails that go out to people who join one of your products' lists — a welcome drip, an onboarding series, a follow-up nudge. You pick a product at the top and everything below belongs to that product. Sequences are created switched off, so you can write and re-read the whole thing before a single email leaves.
What you can do here
- Switch product with the Product dropdown — reloads the page showing that product's sequences
- Add contact — adds one person by email (name optional) and enrolls them immediately in an active signup sequence for this product
- New sequence — name an empty drip; it's created paused and you land straight in its editor
- Create from template — creates the seven-email "Plug-and-Play onboarding" drip with its steps already written, paused, and opens it
- Flip a drip's on/off switch — on means new people joining this product's list start getting it; off takes effect immediately
- Click a sequence name — opens it to edit the emails
- Delete (bin icon) on a row — removes the sequence and the record of what was sent through it; for a drip this happens on one click, with no confirmation
- Stop on a broadcast that is currently queueing or sending — cancels everything not yet sent
Good to know: If your workspace has no product yet, the page only offers a link to create one. Owners and admins see an amber banner until a sending identity is set up and test-verified in email settings — until it passes, sequences read Active but every step is skipped instead of sent; ordinary members never see this banner. Your plan caps how many drips can be active at once; switching on one too many fails with a message telling you to pause another or upgrade. Adding an address that unsubscribed, bounced or asked to be removed is refused. One-off broadcasts appear in their own section above the drips when the workspace has any — they get a Stop button instead of a pause switch and don't count against the active cap — but nothing on this page creates one; deleting one that has already gone out asks you to confirm, because it also deletes the record of who received it.
Sequence editor — /dashboard/sequences/[id]
Where: Click a sequence name on the sequences list, or land here automatically right after creating one.
Access: Signed-in member of the workspace that owns the sequence. A sequence belonging to another workspace shows a "not found" page.
This is where you write the actual emails and decide how far apart they land. Each step is one email with a delay measured in hours, and a summary at the top tells you how many people are enrolled and how their emails have turned out — scheduled, sent, failed, cancelled or skipped.
What you can do here
- All sequences back link — returns to the list
- Read the Enrollment card — how many contacts are enrolled, and a count for each outcome
- Add contact — adds someone to this product's list without leaving the page
- Edit any step's delay in hours, subject line and body — a Save step button appears as soon as you change something
- Flip a step's switch — a switched-off step is skipped rather than sent, without touching the rest of the sequence
- Delete a step (bin icon) — removes it immediately, no confirmation
- Add a step at the bottom — delay (defaults to 24 hours), subject and body, both required; it's added at the end and switched on
Good to know: The pause/activate switch for the whole sequence lives on the sequences list, not here; the Active/Paused badge at the top is just a readout. Bodies support placeholders, listed under each body box, for your app name, founder name, recipient name, benefit, three features and a URL. If this sequence is a broadcast, adding a second step is refused — a broadcast is a single email, and a second step would re-mail everyone who already got the first. The same sender-setup warning appears here for owners and admins, and if your trial has lapsed the workspace is read-only and every save comes back with an error.
Contacts — /dashboard/contacts
Where: Sidebar, under Grow → Contacts (directly beneath Email sequences).
Access: Signed-in member of the workspace.
This is the list of people who can receive one product's sequence emails, and the first place to look when someone says they never got your welcome email. Each row shows when they were added, where they came from, whether they're still subscribed, and a tally of what has been sent, queued, failed or skipped for them. This is a different list from Waitlist: a waitlist signup lands in both places, but everyone captured any other way — added by hand, or posted in from your own app — appears only here.
What you can do here
- Switch product with the Product dropdown
- Add contact — adds one person by email and optional name
- Search by email or name — filters the table as you type
- Export CSV — downloads this product's whole list (email, name, source, subscribed, unsubscribed date, date added) as a spreadsheet file
- Unsubscribe someone (person-with-minus icon) — stops all sequence email to them and cancels anything already queued
- Re-subscribe someone (person-with-plus icon) — only do this if they asked; it's a consent decision, not an undo
- Delete someone (bin icon, then Confirm) — removes them permanently along with their entire send history
- Click a name or email — opens that person's full history
- Show N more — the table loads 50 at a time
Good to know: The counter strip above the table counts unsubscribed people separately and excludes them from the subscribed figure. Your plan caps how many contacts the whole workspace can hold; from 80% a banner appears with an Upgrade link, and at 100% new signups stop becoming contacts until you upgrade — the public side stays silent about it, so this banner is where you find out. Delete is for erasure requests, not for "stop emailing them": a deleted contact is re-created by their next signup and starts the sequence again from the first email. Re-subscribing only flips their record back on — if they opted out via the link in an email, their address is also on the workspace's do-not-mail list, and nothing in the app clears that, so later sends are still skipped. On a read-only workspace (lapsed trial) the unsubscribe and delete buttons are disabled.
Contact — /dashboard/contacts/[id]
Where: Click a person's row in the contacts table.
Access: Signed-in member of the workspace that owns the contact. A contact from another workspace shows a "not found" page.
One person's complete record: whether they're subscribed, where they came from, when they were added, when they unsubscribed if they did, and every email that has been queued, sent, failed, cancelled or skipped for them. Each entry carries a plain-English "Why" line when something didn't go out — the sequence was paused before that step, no sending identity is configured, the address is on the do-not-mail list — which is the difference between a drip that quietly stopped and one that never started.
What you can do here
- All contacts back link — returns to the contacts list
- Read the details panel — source, date added, and the unsubscribe date if there is one
- Read the email history — each entry shows its status, which step and sequence it came from, the subject line, when it was sent or is due, and why it didn't go out
Good to know: This page is a read-out only; unsubscribe, re-subscribe and delete live on the contacts list. If nothing is listed, the page explains the most common cause: people are enrolled at the moment they're added, so switching a sequence on later does not enroll anyone already on the list.
Affiliates — /dashboard/affiliates
Where: Sidebar, under Grow → Affiliates.
Access: Signed-in member of the workspace. On a read-only workspace the Add partner button, the stage dropdowns and the kit generator are disabled.
This is a recruiting pipeline and a commission tracker for people who promote your product to their own audience. Everyone starts as a prospect — a name and a channel — and moves along as they reply; the moment you mark someone accepted or active, LaunchBeam mints their permanent tracked link. Partners are grouped by stage, and four figures at the top summarise the program for the selected product: live partners, revenue they drove, commission earned, and what you owe now.
What you can do here
- Switch product with the Product dropdown
- Add partner — name or handle, email, their channel URL, a "why them" note, a stage (Prospect, Contacted, Accepted or Active), and terms (commission type, rate, attribution window; defaults to 30% recurring over 60 days)
- Change any partner's stage with the dropdown on their row — six stages including Paused and Declined; moving to accepted or active creates their tracked link there and then
- Copy link on a row — copies that partner's tracked URL, once they have one
- Click a partner's name — opens their ledger, terms and outreach drafts
- Follow the small channel link on a row to open their channel
- Generate kit / Regenerate — writes the swipe copy (pitch paragraph, email, DM, social posts, talking points, disclosure note) your partners send to their own audience, and saves it
- Copy any block of the kit, all the social posts at once, or one post at a time
- Expand Where to find partners — a static checklist of five places to look
Good to know: LaunchBeam tracks the program but never moves money — there is no connection to your payment processor, and recording a payout means recording one you already made elsewhere. Commission lines only appear when your own product reports each sale to the conversion webhook carrying the tracking id from the partner's link and the product's ingest secret, so with nothing wired up the ledger stays empty — and a report that arrives without the secret counts in analytics without booking anything. There is one kit per product, not per partner: it leaves a {{link}} placeholder you swap for each person's own link. The kit generator needs an AI provider configured for the deployment; without one the button is disabled and a note says so, and generating counts against your plan's AI allowance. Your plan also caps the total number of partners.
Partner — /dashboard/affiliates/[id]
Where: Click a partner's name on the affiliates list.
Access: Signed-in member of the workspace. Approving, reversing and recording payouts are owner/admin only — the approve, reverse and un-reverse buttons are hidden from ordinary members, and Record payout is visible but greyed out for them.
Everything about one partner in one place: how many clicks their link has had, what they've earned, what you still owe, and the line-by-line commission ledger behind those numbers. Ready-to-edit outreach drafts appear here while you're still recruiting them, and their terms and permanent link sit in the sidebar.
What you can do here
- All partners back link — returns to the list for this partner's product
- Open their channel in a new tab
- Record payout (owner/admin) — logs a payment you made outside LaunchBeam and settles every approved, unpaid line; you enter how you paid, a reference and a note, but not an amount
- Approve a commission line (owner/admin) — makes it eligible to be paid out
- Reverse a line (owner/admin) — for refunds and chargebacks; it stops counting as earnings or as owed
- Un-reverse a reversed line (owner/admin) — puts it back to pending
- Copy either outreach draft (a short DM and a longer email, built from this partner's own details and your terms) — shown while the partner isn't marked active
- Copy their tracked link, or Create link now if they don't have one yet
- Edit their commission type, rate and attribution window, then Save terms
- Tick I've given them a free account and write a note about what you gave them (the note saves when you click away)
- Read the payout history, when there is one, and the activity trail (clicks, added, contacted, comped, their email)
Good to know: A partner's link never changes — rotating it would break every video description already pointing at it. Changing terms only affects future sales; already-booked lines keep the rate they were booked at. The payout dialog has no amount field on purpose: the total is worked out from the approved lines it settles, so the two can never disagree, and the button is disabled when nothing is approved. Lines already inside a payout can't be edited afterwards. The comped-account tick is record-keeping only — LaunchBeam has no access to your product and can't create accounts in it.
Testimonials — /dashboard/testimonials
Where: Sidebar, under Grow → Testimonials.
Access: Signed-in member of the workspace. Publishing and unpublishing are owner/admin only; deleting a quote is admin-only and a member's attempt comes back with the quote untouched. On a read-only workspace every control is disabled.
A place to collect the nice things customers say and keep track of who actually agreed to be quoted. Two separate switches govern each quote: permission is the author's consent, published is your decision to show it — and a quote only appears on your public press kit when both are on. A line at the top counts how many are live, how many are cleared but held back, and how many are still waiting on the author, and each row spells out its own state and what would change it.
What you can do here
- Switch product with the Product dropdown
- Add quote — the quote itself, the author's name and title, an optional star rating, where it came from (with suggestions), and an author photo picked from the images already uploaded for this product
- Set The author agreed to be quoted and Show it on the press kit while adding — the publish switch stays locked until permission is on, and is unavailable to non-admins
- Flip Author gave permission on any row — turning it off immediately pulls the quote from the public page
- Flip Published on any row (owner/admin) — puts a consented quote on the press kit or takes it back down
- Edit a quote — reopens the full form
- Delete a quote (bin icon, then confirm in a dialog) — removes it from the press kit and from your record of who agreed to what
- Follow the link to this product's press kit page in the dashboard — it also tells you whether that press kit is published, or offers to create one
Good to know: Author photos can only be chosen from images already uploaded for that product — if there are none, the dropdown is disabled and tells you to upload first. Withdrawing consent is deliberately available to any member, so "take my quote down" never has to wait for an admin. If a quote ends up marked published with no permission recorded, the row turns red and a note at the bottom explains that the public page skips it.
8. Measure
Analytics — /dashboard/analytics
Where: Sidebar, "Measure" group → "Analytics". Also from the "Tracked clicks" and "Signups" tiles on the Overview page, and from launch-plan tasks and the "next thing to do" card, which open it on the last 7 days for that product.
Access: Must be signed in and a member of a workspace — signed-out visitors go to the login page, and someone with no workspace goes to onboarding. Any role can open it, and there is no plan restriction. Everything shown belongs to your currently active workspace.
This is where you see what your launch links actually did: how many people clicked, how many became signups, trials and purchases, and which listing or platform sent them. It only counts traffic that arrived through links LaunchBeam generated, so a directory listing pointing at your bare product URL contributes nothing here. The page is deliberately cautious about percentages — when a sample is too small to mean anything it shows a dash and tells you why, rather than printing a flattering number off three clicks.
What you can do here
- Choose a product, or "All products" — narrows every number, chart and breakdown on the page to that product.
- Choose a window of the last 7, 30 or 90 days (30 by default) — every tile, chart and tab is recalculated for that stretch.
- Read the six headline tiles (clicks, unique visitors, signups, "Signups ÷ clicks", trials, purchases) — the ratio tile shows a dash with a reason when there are fewer than 20 clicks behind it.
- Switch to the Overview tab — a clicks-and-signups-over-time chart, the revenue your product has reported back, and your best-performing channel by click volume.
- Switch to the Channels tab — every directory and platform ranked by clicks with its click-to-signup rate, so you can compare volume against quality.
- Switch to the Funnel tab — views, clicks, signups, trials and purchases counted as distinct visitor journeys, with how many sessions dropped off at each step and how many events arrived with no visitor id attached.
- Read the example conversion request on the Funnel tab — the exact call your own app makes to report a signup, trial, activation or purchase back to LaunchBeam.
- Switch to the Sources tab — top referring sites, the source tag on your links, campaign tags, countries and device types.
- Create a tracked link for a directory listing (Channels tab, single product selected) — mints a short link for that submission so its clicks can be told apart from every other listing's.
- Copy an existing tracked link — puts it on your clipboard to paste into the listing in place of your product URL.
Good to know: With no products yet the whole page is replaced by a prompt to create one. Per-directory links only appear when you pick one product, and only for submissions marked submitted or live; creating one is refused if the workspace is read-only because billing lapsed, or if that directory is a premium one your plan does not include. Reporting trials, purchases, or any event carrying a money value requires the ingest secret generated on the product page — signup and view events are counted without it, though they only book an affiliate commission when it is sent. Country data comes from the CDN in front of the app and stays empty when there isn't one (local development). If a window holds more than 20,000 events the page says so and explains which numbers are complete and which cover only the most recent slice, and the footer always tells you whether the nightly summarising job has run or whether the figures are being read live.
Paid channels — /dashboard/ads
Where: Sidebar, "Measure" group → "Paid channels". Also linked from the marketing-spend field on the Metrics page and from a launch-plan task.
Access: Must be signed in and a member of a workspace. The page body is a paid feature: on Free Trial or Starter you see the header and product picker plus a locked notice with an Upgrade button, and everything below it is hidden — it is included on Pro and Scale. If the workspace is read-only because the subscription lapsed, the body is replaced by a billing warning with a "Fix billing" link instead, and no spend can be recorded even on a paid plan.
This is the page that answers "should I keep spending on this channel". You record what each paid channel cost you — by hand or by pasting the platform's own export — and LaunchBeam matches that spend against the clicks and signups those ads actually produced, then compares the cost per customer to what a customer is worth to you. Channels get a plain verdict: Scale, Watch, Kill, "Not tracking", or "No verdict yet". It always covers the last 90 days for the selected product.
What you can do here
- Switch product — spend and attribution are tracked per product, so this changes everything below. There is no "all products" option; the newest product is selected by default.
- Read the four summary tiles: total spend, signups matched to paid clicks, blended cost per acquisition, and how many channels have spend but no matched clicks.
- Record one day of spend — pick a date and channel from the grouped list, enter the amount and optionally clicks, conversions and a campaign label; re-entering the same day, channel and campaign corrects the earlier figure instead of adding to it.
- Paste a CSV export and import it — needs date (as YYYY-MM-DD), channel and spend columns; campaign, impressions, clicks and conversions are optional, and common column names from the ad platforms are recognised automatically.
- Read the per-channel table — spend, matched clicks, cost per click, signups, cost per acquisition, return on ad spend, the typical industry cost for that channel, and the verdict with a sentence explaining it. Where the ad platform's own click count disagrees with what was matched, both are shown.
- See the exact source tag each channel's ads should carry, shown under the channel name in the table.
- Delete any recorded spend row from the "Recorded spend" list — removes it from every figure on the page.
- Jump to Metrics to record the snapshots that produce a lifetime value — the two links appear only while there is no lifetime value to use.
Good to know: With no products yet you get a prompt to create one instead of the page. Verdicts need a lifetime value, which comes from the Metrics page; until there is one, every row reads "No verdict yet" — the costs still show, but the page refuses to tell you to kill anything it cannot measure. Matching depends entirely on your ad's landing URL carrying the source tag shown against the channel; a mismatch reads as "Not tracking" rather than as a terrible cost per customer. Some channels legitimately share one source tag — the Google properties all report as google, and both LinkedIn ad types as linkedin — so when you spend on more than one of those, their matched clicks and signups are reported together and each row says so. Attribution is read from the nightly summarising job, so a workspace whose background worker has never run will show spend with nothing matched to it. The CSV channel column must be a channel LaunchBeam knows; unrecognised rows are skipped, imports stop after 1,000 rows, and you are told how many lines were rejected and the reason for the first few. Benchmarks are industry averages compiled on a fixed date, advisory only, and never feed the verdict. If both your own typed entries and a synced ad account cover the same day for a channel, that channel's verdict is withheld rather than computed on doubled spend — and there is currently no button on this page to mark which record should win.
Metrics — /dashboard/metrics
Where: Sidebar, "Measure" group → "Metrics". Also from the two prompts on the Paid channels page, which arrive with the product already selected, and from launch-plan tasks.
Access: Must be signed in and a member of a workspace. No plan restriction, no role restriction. If the workspace is read-only because billing lapsed, the forms still appear but saving or deleting a snapshot is refused with an error message.
This is your SaaS scoreboard, built from numbers you enter yourself once a period rather than from an accounting integration. You record customers, MRR, expansion, churn and marketing spend for each period, and the page derives the full set of standard metrics — ARR, ARPU, growth, retention, lifetime value, acquisition cost, payback, quick ratio — and charts your recurring revenue over time. It also shows a simple launch funnel from tracked clicks through signups to paying customers.
What you can do here
- Filter by product using the pills at the top, or choose "All products" — narrows which snapshots feed the charts and metric tables.
- Read the six key cards: MRR, ARR, customer churn rate, LTV, CAC and NPS.
- Read the MRR-over-time chart, one point per recorded period.
- Read the launch funnel bars (clicks, signups, customers) and the trial-to-paid figure beneath them.
- Read the full metrics table — every metric with its category, plain-English description and formula, computed from your most recent snapshot.
- Add a snapshot — period start date (required), whether it applies to one product or the whole workspace, customers, new customers, churned customers, MRR, expansion MRR, marketing spend, NPS and a free-text note.
- Delete a snapshot from the list — the metrics recompute immediately without it.
Good to know: With no snapshots recorded every figure reads zero and you get a prompt to add one; the launch funnel works regardless. With only one snapshot there is no earlier period to compare against, so it is compared to itself — MRR growth reads 0% and the retention figures are computed off the same snapshot. Re-entering the same period start for the same product overwrites that snapshot rather than creating a second one. The marketing spend field here is your total marketing cost for the period and produces a blended acquisition cost; it is deliberately separate from the per-channel spend on Paid channels, so filling in both does not double-count. The launch funnel counts every tracked click and signup event in the workspace, across all products and all time — it does not follow the product filter or any date window. The lifetime value that gives the Paid channels page its verdicts is computed from all of this workspace's snapshots, regardless of which product filter you have selected here.
9. Workspace — connections, referrals, settings
Connections — /dashboard/connections
Where: Sidebar, "Workspace" group → "Connections". Also reached from the setup card "Connect where you will post from" on the dashboard, from launch-readiness items, and from tasks in your launch plan.
Access: Must be signed in and a member of a workspace. Anyone in the workspace can open and read the page — the Connect button is visible to everyone — but only owners and admins can actually save, disconnect, or change a connection; a member who tries gets "Only owners/admins can manage connections."
This is where you hook LaunchBeam up to the places you publish. Every supported platform is listed with a badge saying what LaunchBeam can do there: Auto-publish, Assisted (a prefilled draft you submit yourself), or Manual. Connecting is one short form per platform — you paste in the credential the platform gives you (a handle and app password, an API key, a webhook URL, a bot token, an access token), and it's encrypted before it's stored.
What you can do here
- Connect a platform — opens a dialog with just the fields that platform needs; the platform shows a green "Connected" badge afterwards
- Give a connection a label — names it in the list so you can tell two accounts apart; defaults to the platform name if you leave it blank
- Read the risk notice on a connection form — X, LinkedIn, Reddit, Facebook and Instagram show a warning before you connect explaining what will and won't work
- Turn on "Enable auto-post" while connecting Reddit — opts into automatic submission instead of the safer prefilled-draft handoff; off by default
- Flip the "Auto-post" switch on a saved Reddit connection — same choice, changeable later
- Disconnect (trash icon) — deletes the stored credential and stops the recurring metric checks for already-published posts on that platform
- "Upgrade to connect" — on a platform your plan doesn't include, this replaces the Connect button and takes you to Billing
- Read the culture note under each platform — what that community tolerates in a launch post
Good to know: X (Twitter) is locked on the free trial, and an existing X connection reads "Inactive on your plan — scheduled posts won't publish here until you upgrade." Auto-publishing overall is a paid feature: on the trial a banner explains that scheduled posts send you a reminder with prefilled content instead of going out on their own. Product Hunt, Hacker News, Indie Hackers, TikTok and YouTube need no connection at all — they show "No connection needed — assets + reminder". Your plan also caps how many platforms you can connect, and once a trial has lapsed new connections are refused with an upgrade message — but disconnecting and turning auto-post off stay available, deliberately. Disconnecting removes LaunchBeam's copy of the credential; it does not revoke access at the platform's end, so do that in the platform's own settings too.
Refer & earn — /dashboard/referrals
Where: Sidebar, "Workspace" group → "Refer & earn".
Access: Must be signed in. This is the one dashboard page that belongs to you personally rather than to a workspace, so your numbers are the same no matter which workspace you have selected. It stays fully usable even when your workspace has gone read-only after a lapsed trial.
Your referral link for LaunchBeam itself, and what it has earned. Share the link, and when someone signs up through it and starts paying, you earn 10% of every invoice they pay for as long as they stay. The page shows how many people clicked, how many signed up, how many are paying, and what you've earned to date.
What you can do here
- Copy your referral link — one button; the link is created automatically the first time you open the page, no setup step
- Share on X — opens a prewritten post with your link attached
- Share on LinkedIn — opens LinkedIn's share dialog with your link
- Send an email — opens your mail app with a subject and body already filled in
- Read the four counters — clicks, signed up (with the percentage of clicks that converted), paying (with how many haven't paid yet), and earned to date (with how much is still pending review)
- Review the list of people you've referred — masked email, when they joined, whether they're paying, and what each has earned you
- Read the program terms — 10% of every paid invoice, no cap, no expiry, excluding tax, reversed on refunds, stops if they cancel
Good to know: Earnings are tracked but not withdrawable yet — the line under the counters says so and promises an email when payouts open. Referee email addresses are deliberately shown partly hidden. Attribution lasts 60 days from the click, and self-referrals are silently excluded from your list. If the link can't be created for some reason, the page says so in place of the share panel and asks you to refresh.
Settings · Billing — /dashboard/settings/billing
Where: Sidebar, "Workspace" group → "Settings" lands here; also from the plan badge at the bottom of the sidebar, and from upgrade prompts elsewhere in the app. Four tabs across the top switch between Billing, Team, Email and Organization.
Access: Must be signed in and a member of the workspace. Members can see the plan, usage and limits; only owners and admins get the buttons that change or manage the subscription.
Your workspace's plan in one place: what you're on, when it renews or when the trial ends, how much of this month's AI allowance you've used, and the full table of what your plan includes. It's also the jumping-off point for changing plan or opening Stripe's billing portal to update a card or download invoices.
What you can do here
- "Choose a plan" / "Change plan" — goes to the pricing page to start or switch a subscription (owners and admins only)
- "Manage billing" — opens Stripe's own portal to update payment details, see invoices, or cancel (owners and admins only; appears once the workspace has a Stripe customer on file)
- Watch your AI credit meter — used against this month's allowance, with a bar that turns red at the cap; the Products and Connections tiles beside it show your plan's ceiling only, not how many you've used
- Read the plan-limits table — workspaces, products, campaigns, connected platforms, affiliate partners, AI credits per month, credits rolled over per month, extra credits you can buy per month, sequence emails per day, waitlist signups, contacts, active sequences, LaunchBeam branding, team members, X (Twitter), premium directories, auto-publish, analytics polling and priority generation. Rows for a limit your plan does not sell — rollover and bought credits on the lower tiers — read "—" rather than "0"
Good to know: Right after you pay, there's a short window where Stripe has taken the money but hasn't finished activating the plan — the page shows a "Payment received — activating your plan" note and asks you to reload. If Stripe hasn't been set up on this deployment, a dashed banner says checkout and the portal are disabled, and "Manage billing" is greyed out. The AI counter resets each month; a counter left over from a past month reads as zero rather than as an allowance already spent. Members see the plan card and limits table but no buttons at all.
Settings · Team — /dashboard/settings/team
Where: Settings → the "Team" tab.
Access: Must be signed in and a member of the workspace. Everyone can see who's in the workspace; the invite card appears only for owners and admins; the role dropdowns appear only for owners.
Who has access to this workspace, and what they can do. Owners and admins invite people by email and can remove them; only an owner can promote or demote someone. Invitations that haven't been accepted yet are listed separately so you can see what's outstanding.
What you can do here
- Invite a teammate — enter an email, pick member / admin / owner, and send; they get an email with an accept link (owners and admins only)
- See your seat allowance — printed under the invite form as the number of seats your plan includes (so only owners and admins see it)
- Change someone's role — a dropdown next to each member, owner only, and never on yourself
- Remove someone from the workspace (trash icon) — owners and admins, and never on yourself
- Review pending invitations — email and role, marked "pending", shown only when some exist
Good to know: Invitation links expire after seven days and can only be accepted by someone signed in with the exact invited address. Inviting is blocked while the workspace is read-only after a lapsed trial ("upgrade to invite people"), but removing people and reassigning roles stays available — deliberately, so a lapsed workspace can shrink and hand billing rights to whoever can pay. The seat number is shown for reference; sending an invite doesn't check it. Members see the member list and pending invitations, with roles as plain badges and no controls.
Settings · Email sending — /dashboard/settings/email
Where: Settings → the "Email" tab. Also linked from the "set up sending" prompt shown on the sequences side of the app.
Access: Must be signed in and a member of the workspace. Only owners and admins can see or change the sending configuration — for a member the whole form is greyed out with a line explaining why.
Email sequences go out through your own email provider, from your own domain — LaunchBeam never sends your customer email from its own address. This page is where you point it at your SMTP server or your Resend key, send a test to prove the credentials work, and see how much of today's send allowance you've used. Nothing goes to your contacts until a test passes.
What you can do here
- Choose a provider — SMTP (Gmail, Zoho, SES, Postmark…) or your own Resend API key
- Set the From name — also fills the founder placeholder in your sequence templates
- Set the From address — must be on a domain you've authenticated with that provider
- Set a reply-to address (optional) — where replies from your sequence emails land
- Fill in SMTP host, port (587, 465 or 2525), an implicit-TLS switch, username and password — unencrypted connections are refused either way
- Paste a Resend API key — if you picked Resend instead
- Save — stores the credential encrypted and resets the verified status
- "Send test & verify" — sends one real message to your own signed-in email address and, if it goes through, switches sending on; unavailable until you've saved a sender
- Remove the sender — a two-step confirm; stops all sequence email for the workspace immediately
- Watch today's send count against your plan's daily ceiling
Good to know: A saved password or key is never shown back to you — the field renders empty with a "saved" placeholder, and leaving it blank keeps the existing one. Any save clears the verified badge, so you re-run the test. Until a test passes, the top of the page reads "Sequence emails are paused"; if a previous attempt failed, the provider's error is shown so you can fix it. The test always goes to your own address; there is no "send to…" field. The daily limit resets at midnight UTC, and when it's reached, steps due that day are marked skipped with a reason rather than queued — your own provider will have its own, usually lower, limit on a new domain. Saving, testing and removing are all blocked while the workspace is read-only after a lapsed trial. A member opening this tab sees the "Not configured" state regardless of what is actually set up, though the daily send counter is still visible.
Settings · Organization — /dashboard/settings/organization
Where: Settings → the "Organization" tab.
Access: Must be signed in and a member of the workspace. Only owners and admins can edit; a member sees the same fields, greyed out, with no Save button.
The workspace's identity. There are only two things here: the display name, which is what appears in the workspace switcher and in invitation emails, and the URL-safe slug, which is fixed.
What you can do here
- Edit the workspace name — Save becomes available once you've actually changed it (owners and admins only)
- View the slug — always read-only, set when the workspace was created
Good to know: Renaming still works when the workspace is read-only after a lapsed trial. There is no way to change the slug or delete the workspace from this page.
10. Pages your visitors and partners see
You never open these from inside the app. They are what the outside world lands on — three published pages and three tracked links that redirect.
Public waitlist page — /w/[slug]
Where: The public link shown on your dashboard Waitlist page — the one you put in your bio, your launch posts and your directory listings. Signups arriving through someone's referral link land here too, with the referrer credited automatically.
Access: Fully public, no account needed. Unpublished, deleted or unknown links return a "not found" page, so an unpublished page is genuinely invisible.
This is what your visitors see: the product's name and logo, your headline and subhead, up to four feature bullets, and the signup form sitting right next to them above the fold. Below that come the product screenshot you chose as the hero and up to three published testimonials. If your product has a launch date still in the future, it's shown as an "Opens …" badge for a bit of urgency.
What you can do here
- Enter an email (and a first name, if you asked for one) and press your button — adds the visitor to the list and shows your confirmation message.
- Follow the product link in the footer — opens your product's own site, if you've set one.
Good to know: The confirmation screen deliberately doesn't show the person's position in line or their referral link — both go by email instead, so only the person who can open that mailbox gets them, and the screen looks identical whether the address was new or already on the list. If your workspace has no email sending configured, the screen says the place in line is saved rather than promising an email. A live signup count is shown as social proof only once at least 25 people have joined, since a smaller number argues against joining. When the workspace hits its plan's signup allowance the form is replaced by a neutral "the waitlist is full right now" panel that names no plan and no vendor. A "Waitlist by LaunchBeam" footer link appears unless the plan includes removing branding.
Public press kit — /kit/[slug]
Where: The founder builds and publishes it from Press kit in the dashboard. The address is your site's domain plus /kit/ plus a slug you type, or one minted from the product name with six random characters if you leave it blank. Once live, the Visibility panel there gives you Copy link and Open public page. Nothing in LaunchBeam links to this page for you — it's a URL you paste into press emails, embargo notes, Slack and X.
Access: Anyone with the link, no sign-in and no account. It only resolves while the kit's publish switch is on (owners and admins only, and only after a headline and About paragraph are saved). An unpublished kit, a slug that doesn't exist, a deleted kit, or a kit whose product has since been removed all return an ordinary 404 — the same response, so nobody can tell an unpublished kit from a nonexistent one.
This is the page you send a journalist, podcast booker or directory editor when they ask for "materials". It puts everything they need on one screen: your one-line headline, the About paragraph they'll paste verbatim at the bottom of a story, the plain facts about the product, your founder bio and photo, downloadable logos and screenshots, and quotes from customers who cleared them. It's read-only for visitors — there is nothing to sign up for, no form, no tracking of who opened it — and it goes down the moment you flip the publish switch off.
What you can do here
- Click the Visit button in the header — opens the product's own website in a new tab; shown only when the product has a URL on file.
- Click the Contact button in the header — opens the visitor's mail app addressed to your press contact, with the subject pre-filled as "Press enquiry — your product name".
- Click the website address in Fast facts — same destination as the header button, shown without the protocol so it reads as a plain domain.
- Click the press contact address in Fast facts — a plain mail link to the same address, no pre-filled subject.
- Download any brand asset from the grid — each tile links straight at the original uploaded file (not a re-encoded copy) and saves with a tidy name like
yourproduct-logo.png; each tile also shows the pixel dimensions and file size before they click. - Click the press contact address in the footer — the same pre-filled press enquiry mail link, repeated at the bottom so a reader who scrolled the whole page doesn't have to go back up.
- Click "Press kit by LaunchBeam" in the footer — opens LaunchBeam's own site in a new tab; it disappears entirely on plans that include branding removal.
Good to know: Whole sections only appear when there's something in them — the feature list, the founder block, the asset grid and the quotes section each vanish if empty, and quotes show only when you've published them and recorded the author's permission. The "Last updated" date in the footer appears only when you haven't set a press contact email. Pasting the link into Slack, X or LinkedIn renders a preview card built from your OG image (falling back to a banner, screenshot, logo or icon); with no image at all it falls back to a small text-only card rather than a blank one. The page declares itself as the canonical version of that URL and nothing blocks search engines from indexing it, so treat "published" as genuinely public. It caches for up to a minute, but every save, publish, unpublish, delete and testimonial change refreshes it immediately — taking a kit down is not delayed.
Unsubscribe — /u/[token]
Where: The link in the footer of every sequence email LaunchBeam sends. Not reachable from the app, and not listed anywhere in the dashboard.
Access: Fully public, no account and no app navigation — the person reading it is a mail recipient, not a LaunchBeam customer.
The opt-out page a recipient lands on when they click "Unsubscribe" at the bottom of one of your emails. It asks for one confirming click rather than acting on arrival, because corporate mail scanners fetch every link in every message before the recipient sees it, and an instant opt-out would silently remove people who never opened the email. Mail clients that offer their own unsubscribe button use a separate machine-only route and never show this page.
What you can do here
- Unsubscribe me — marks that person unsubscribed, cancels every email still queued for them, and records their address on the sending workspace's do-not-mail list
- After confirming, a short "You've been unsubscribed" message is shown
Good to know: The page looks and behaves identically whether the link is valid or not — it never reveals whether an address is on anyone's list, and clicking twice changes nothing. Refreshing after confirming does not re-submit. Because the opt-out is recorded workspace-wide, that address is refused if the founder later tries to add it by hand, and mail to it is skipped even if the contact is switched back to subscribed — nothing in the dashboard clears that record.
Campaign post click link — /r/[shortcode]
Where: Not a page you open from inside LaunchBeam. The link is written into the copy of the posts the app generates for you — one code per platform post when you create a campaign, and one for each LinkedIn post the organic agent drafts. Visitors reach it by clicking the link inside your published post.
Access: Public. No sign-in, no workspace membership — anyone who sees the post can click it.
This is the trackable link that stands in for your product URL inside generated social copy. Instead of the bare website address going into a Reddit post or a LinkedIn update, LaunchBeam puts one of these in, so it can tell how many people clicked that specific post on that specific platform for that specific campaign. The visitor sees a brief hop and lands on your product site with campaign tags already attached, so your own analytics tool agrees with LaunchBeam's numbers.
What you can do here
- Click the link (as a visitor) — you land on the campaign's product website, with source set to the platform the post was published on, medium set to "launchbeam", and campaign set to a tidied-up version of the campaign name.
- Nothing else — there is no visible page, no controls, and the hop is instant.
- Behind the scenes, the click is recorded against the post, the campaign and the product, along with the referring site, a rough country from the visitor's connection, and whether they were on desktop, mobile or tablet.
- A visitor id is stored and also passed along on the outgoing web address, so a signup later reported by your own product can be traced back to this exact click.
Good to know: The destination is whatever website address is saved on the product — if that is missing or not a normal web address, the visitor is sent to LaunchBeam's own home page instead of anywhere unexpected. Link-preview bots and uptime checkers (Slack unfurls, Discord, WhatsApp, monitoring probes) are detected and deliberately not counted. A retired or unrecognised code sends the visitor to LaunchBeam's home page rather than an error page, and if the click can't be recorded for any reason the visitor is still forwarded. The visitor id lasts 180 days, so a slow signup after launch week still gets credited.
Affiliate link — /a/[shortcode]
Where: Given to you under Grow → Affiliates — shown on each partner's row in the list with a "Copy link" button, and again in the "Their link" box on their detail page with a Copy button. It is created automatically the moment you set a partner's stage to accepted or active, and there's a "Create link now" button on the detail page if it is missing. Your partner then puts it in their video description, newsletter or bio, and their audience clicks it from there.
Access: Public. Anyone with the link can use it; the partner never needs a LaunchBeam account.
This is the one link that decides who gets paid. Every partner promoting you points at the same product website, so a personal link per partner is the only way to tell whose audience sent a visitor. Clicks arrive tagged with that partner's name, and the visitor is carried through to your site with an id that lets a later purchase be booked against the right person.
What you can do here
- Click the link (as a visitor) — you land on the product's website, with source set to the partner's name, medium set to "affiliate", and campaign set to the product's name.
- Copy the link — done from the partner row or the partner detail page, not from the link itself.
- Create the link on demand — "Create link now" on the partner's detail page mints one if the automatic creation didn't happen.
- Behind the scenes, the click is recorded against the partner, the product, the referring site, rough country, and device type.
- A visitor id is set and passed along, so when your own product later reports a sale it can be credited to this partner's commission.
Good to know: A partner's code is minted once and never changes, so links already published in videos and newsletters keep working; the redirect also keeps working no matter what stage you later move the partner to. Bot and preview traffic is filtered out before anything is counted. The click alone doesn't pay anyone — commission is only booked when your product reports the conversion back to LaunchBeam. Creating a link needs a workspace that isn't in read-only mode; if the product has no valid website address, visitors land on LaunchBeam's home page instead.
Directory listing link — /d/[shortcode]
Where: Shown on the Analytics page, Channels tab, in the "Per-directory tracked links" card — one row per directory submission marked submitted or live, with a Copy button (or a "Create link" button if one hasn't been made yet). It is minted automatically the first time you set a submission's status to submitted or live on the Directories page. You paste it into the listing itself — the "website" field on Product Hunt, G2, AlternativeTo and the rest.
Access: Public. Anyone browsing that directory listing can click it.
This answers the question every launch raises and almost nothing else can: which directory actually sent you traffic. Since every listing points at the same product website, and most directories strip or fake the referring site, a separate link per listing is the only reliable signal. Clicks show up on your Analytics page attributed to that exact directory, and visitors reach your site tagged with the directory's name so your own analytics matches.
What you can do here
- Click the link (as a visitor) — you land on the product's website, with source set to the directory's short name, medium set to "directory", and campaign set to the product's name.
- Create the link — the "Create link" button mints one for a submission that doesn't have it yet.
- Copy the link — copies the address so you can paste it into the directory listing.
- Behind the scenes, the click is recorded against that directory and product, with the referring site, rough country and device type.
- A visitor id is set and carried onto your site, so a signup your product reports later can be traced back to that listing.
Good to know: The links card only appears once you pick a single product in the Analytics filter — with "all products" selected it just tells you to choose one. Premium built-in directories (Product Hunt, Hacker News, BetaList, AppSumo, G2, Capterra) are paid-plan only: on a plan without them, creating a link is refused with an upgrade message, and until a link exists that listing's traffic shows up as untagged. Creating a link also needs a workspace that isn't read-only. Create the link before you paste your URL into the listing; a link made afterwards tracks nothing. Bot and preview traffic is excluded, an unknown code sends visitors to LaunchBeam's home page rather than an error, and a product without a valid website address means visitors land on LaunchBeam instead of your site.
11. Endpoints you wire up yourself
No screens — these are addresses you call from your own product or paste into another service. Everything else in the app works without them; attribution and deliverability do not.
Conversion webhook — /api/webhooks/conversion
Where: Not a page. You call it from your own product's server. The Analytics page's "Conversions" panel shows a ready-made copy-paste command for it, and the secret it needs is generated under "Server-side conversion tracking" on the product's own page.
Access: Public — no sign-in, no session. Events that carry money (a trial, a purchase, or anything sent with an amount) must include that product's ingest secret in a header; plain counting events (signup, activation, view, click, install, share, impression) are accepted without one.
This is how things that happen inside your own product — someone signs up, starts a trial, pays you — get reported back to LaunchBeam. Without it you have two unrelated numbers: "400 clicks" from your tracked links and "12 signups" from your own database. With it, a signup is tied to the exact click, directory listing or affiliate link that produced it, so the analytics, the channel comparison and any affiliate commissions all line up.
What you can do here
- Report a signup, activation, view, click, install, share or impression — adds the event to your numbers with no credential.
- Report a trial or a purchase, or send an amount with any event — accepted only with the product's ingest secret in the
x-launchbeam-secretheader; without it you get an outright refusal rather than a silently accepted number. - Send the
lp_sidvalue that tracked links append to your URL assessionId— the conversion is credited to the last click before it, including which affiliate or directory that click came from. - Send a campaign-post, directory or affiliate short code, or a campaign or product id instead — coarser attribution for when you only know which link you published.
- Send your own charge or invoice id as
externalId— this is what makes a retried webhook safe, so an affiliate is not paid twice for one sale. - Book an affiliate commission — needs the ingest secret on every kind, not just the revenue ones. Without it the event still counts in your analytics and the reply comes back
commission: { recorded: false, reason: "unverified" }, because the partner links it would pay against are published in public. - Read the reply — it tells you how the event was attributed and, for affiliate sales, whether a commission was recorded and why not if it wasn't.
Good to know: An event it can't attribute to anything is rejected, not silently dropped. Revenue events must resolve to exactly one product, and the product must have an ingest secret generated first — otherwise they are refused with an explanation. Traffic is rate-limited per source and per workspace; sending the secret lifts the workspace limit, so nobody else holding your public short code can crowd out your real sales reports. Device and country are deliberately not recorded here, because the request comes from your server, not the buyer.
Waitlist signup — /api/waitlist
Where: Posted automatically by the form on your public waitlist page. You would only call it directly if you were building your own signup form against it.
Access: Public. Only waitlist pages you have actually published accept signups — an unpublished draft behaves exactly like a page that doesn't exist, so a leaked draft link can't be used to seed your list early.
This is the thing that captures a waitlist signup: it creates the entry, adds the person to your contacts for that product, starts them on any active signup email sequence, and sends them a welcome email with their queue position.
What you can do here
- Submit an email address (and a first name, if you turned that field on for the page) against a published waitlist — creates the entry and triggers the welcome email.
- Pass a referral code — credits the person who referred them, as long as the code belongs to the same waitlist page and that person hasn't unsubscribed.
- Pass campaign tracking parameters — stored on the entry and on the signup event so the waitlist shows where signups came from.
- Nothing else: there are no other fields, and a hidden decoy field plus a "was this form on screen long enough" check quietly reject obvious bots.
Good to know: The reply is deliberately identical whether the address was brand new or has been on the list for a month — queue position and the referral link go to the mailbox, never to the browser, so nobody can use the form to find out who signed up for your unreleased product. The referral link is only in that email if referrals are switched on for the page. If your workspace has hit its plan's waitlist cap the signup is refused for everybody, with the same message. If you have not yet connected and verified a sending address, the signup is still saved but no email goes out and the success screen stops promising one. Repeated submissions from one network, one page or one address are throttled.
Contact capture — /api/contacts
Where: Direct call only — you point your own landing-page form or your server's signup handler at it. The Contacts page's empty state and the launch plan both tell you it exists.
Access: Public, no sign-in. Sending the product's ingest secret is optional but strongly recommended for server-side callers: it raises the limits dramatically.
Use this when you'd rather keep visitors on your own landing page than send them to a LaunchBeam waitlist page. Every address you post lands on the product's contact list and is enrolled into every active signup email sequence for that product, so you get the drip without building a second integration.
What you can do here
- Post an email address (and optionally a name) with a product id, or with the short code of one of your campaign posts — adds the contact and starts their sequence.
- Send the ingest secret header — swaps the tight anonymous limits for a single high ceiling, which is what a founder's own server posting every signup from one IP needs.
- Leave the secret off — works, but is throttled per network, per product and per address, and one person holding your public short code can use up that shared allowance.
- Include the same hidden decoy field and on-screen-time value your browser form sends — a filled decoy or an instant submit is refused before anything is written.
Good to know: The reply is identical whether the address is new or already a contact; the only distinct error is "couldn't resolve that product", kept so you can tell when your id is wrong. If your plan's contact allowance is full the capture is refused — the waitlist page keeps working in that case, but this endpoint does not. If the background email worker is unreachable the contact is still saved and you still get a success; only the first sequence email is late.
One-click unsubscribe — /api/unsubscribe
Where: Never visited by hand. It is the address LaunchBeam puts in the unsubscribe header of every sequence email, and Gmail and Yahoo call it directly when a recipient uses their mail client's own unsubscribe button. Opening the link in a browser instead sends you to the visible confirmation page.
Access: Public. The long random token in the link is the only credential; it can't be guessed and can't be traced back to an address.
This is what keeps your sending domain in the inbox. Since the 2024 bulk-sender rules, Gmail and Yahoo require a one-click opt-out that works without a human seeing a page, and this is it. When someone uses it, they are marked unsubscribed, added to a workspace-wide suppression list so another product in the same workspace can't start mailing them again, and every email still queued for them is cancelled.
What you can do here
- Nothing, as the founder — there is no control and no way to switch it off. The header and the visible footer link are added to every sequence send regardless of how you write your steps.
Good to know: It always answers success, whether the token was real or not, on purpose — a different answer would let anyone test whether a given person is on somebody's list. It is safe to trigger twice; a mail scanner pre-fetching the link does not count as the recipient's decision, because browser visits are sent to the confirmation page instead. Already-sent mail is left alone; only mail still waiting to go out is cancelled.
12. Endpoints the app and your providers call
Also no screens. These fire on their own — when you press a button in the app, or when Stripe or your email provider reports something back. Listed so nothing in the app is undocumented.
Stripe webhook — /api/webhooks/stripe
Where: Not a page and not linked anywhere in the app. You paste this URL into your own Stripe dashboard's webhook settings when you set the deployment up.
Access: Public to Stripe only — every request must carry a valid Stripe signature.
This is the pipe that turns a completed Stripe payment into an actually unlocked workspace. The billing page's "waiting for confirmation" message after checkout is waiting on this.
What you can do here
- Nothing by hand. It reacts to checkout completions, subscription changes and cancellations, paid and failed invoices, refunds, and lost disputes.
- A paid invoice unlocks the plan and starts a fresh usage period; refunds and lost disputes reverse any referral commission booked on that charge.
Good to know: It refuses everything until the signing secret is configured on the deployment. A refund does not revoke access — only an actual Stripe cancellation does. If this endpoint isn't wired up, customers pay and stay on the trial plan.
Resend webhook — /api/webhooks/resend
Where: Not a page and not linked anywhere in the app. You paste this URL into your Resend dashboard's webhook settings.
Access: Public to Resend only — every request must carry a valid signature, and stale payloads are rejected.
This is what tells you what happened to the emails your sequences send. Without it a dead mailbox stays on your list forever and your sending reputation quietly falls.
What you can do here
- Nothing by hand. It records deliveries, opens, clicks, delays, bounces and spam complaints against the matching send.
- A hard bounce or a spam complaint unsubscribes that contact, adds the address to your workspace-wide suppression list, and cancels their remaining queued emails.
Good to know: It refuses everything until its signing secret is configured. Soft bounces are recorded but do not remove anyone — a full mailbox is not a reason to drop a subscriber. Events for messages LaunchBeam didn't send are acknowledged and ignored.
Affiliate kit copy — /api/affiliates/kit
Where: Not a page. It is what the Generate button on the affiliate kit panel at the bottom of the Affiliates page calls.
Access: Must be signed in and working in a workspace that isn't read-only.
Writes the swipe copy your partners send to their own audience, using the exact commission terms you have on screen rather than whatever was saved earlier — so copy quoting a rate you just changed away from can't happen.
What you can do here
- Generate kit copy for a product using the commission type, percentage and cookie window currently set — returns the copy for you to review.
Good to know: Needs an AI provider configured on the deployment, otherwise it refuses with a message saying so. If your trial has ended and the workspace is read-only, or you've used up your plan's credit allowance, it tells you instead of generating. Paid plans get the higher-quality model.
Connect Meta ad account — /api/connections/meta/start → /api/connections/meta/callback
Where: Direct URL only — no button in the app currently links to it.
Access: Owners and admins only. Anyone else is bounced to the Connections page with an error; signed-out visitors go to the login page.
Hands your Meta ad account read (and, later, write) access to LaunchBeam's Meta ads agent, so it can see what your campaigns are actually doing. The round trip asks Meta for ad-reading and ad-management permission and stores the resulting credential against your workspace.
What you can do here
- Start the Meta authorization round trip — you approve it on Meta's own consent screen and come back.
Good to know: Requires the deployment to have Meta app credentials configured; without them you're sent straight back with an error. Meta must have approved the app for these permissions or the consent screen refuses. If the Meta user you approve with can't see any ad accounts, the connection is refused with an explanation. Reconnecting replaces the existing Meta connection rather than adding a second one. On success you land on the Marketing agents page.
Connect LinkedIn — /api/connections/linkedin/start → /api/connections/linkedin/callback
Where: Direct URL only — no button in the app currently links to it. The manual "paste an access token" fields on the LinkedIn card in Connections remain the reachable path.
Access: Owners and admins only. Anyone else is bounced to the Connections page with an error; signed-out visitors go to the login page.
The same round trip for permission to post to LinkedIn as you. Once connected, scheduled LinkedIn posts can publish themselves instead of pinging you to paste them.
What you can do here
- Start the LinkedIn authorization round trip — you approve it on LinkedIn's consent screen and come back to the page you started from.
Good to know: Requires LinkedIn app credentials on the deployment, or you're sent back with an error. Reconnecting replaces the existing LinkedIn connection rather than stacking a second one. Post metrics need LinkedIn's analytics permissions, which they grant per approved app; without them LaunchBeam measures the post with its own tracked clicks instead. If LinkedIn's programmatic refresh isn't granted to the app, the connection eventually needs reauthorizing by hand.
Start or change a subscription — /api/billing/checkout
Where: Not a page. It is what the plan buttons on the public pricing page call once you're signed in. Signed-out visitors are sent to signup instead of here.
Access: Must be signed in, and owners or admins only.
Takes you to Stripe to pay for the plan and billing period you picked. If the workspace already has a live subscription it switches that one to the new price rather than selling you a second subscription.
What you can do here
- Pick a plan and monthly or annual billing — opens Stripe Checkout, or Stripe's plan-change screen if you already pay.
- If Stripe's portal can't host the change, the switch is applied directly and you get a confirmation message instead of a redirect, with Stripe prorating the difference.
Good to know: Unavailable until Stripe is configured on the deployment, and it will tell you if the plan you picked has no Stripe price set up. Already on the price you asked for? You get sent to the customer portal instead, where the card, invoices and cancellation live.
Manage billing — /api/billing/portal
Where: Not a page. It is behind the "Manage billing" button on the billing settings page, which only appears once the workspace has a Stripe billing account.
Access: Must be signed in, and owners or admins only.
Opens Stripe's own customer portal, where you change your card, download invoices, and cancel.
What you can do here
- Open the Stripe portal for this workspace and return to the billing settings page when you're done.
Good to know: Unavailable until Stripe is configured. A workspace that has never checked out has no billing account, so it answers with "choose a plan first".
Plan and usage status — /api/billing/status
Where: Direct URL only — no page in the app calls it. It exists so you can check what a workspace is entitled to from outside the dashboard, and to verify that a payment actually landed.
Access: Any signed-in member of the workspace.
Reports the active workspace's plan, subscription status, trial end, renewal date, whether it has been put in read-only mode, its plan limits, and this period's usage.
What you can do here
- Read the current plan, status and usage for the workspace you have active.
Good to know: The Stripe customer, subscription and price ids are only included for owners and admins; ordinary members get everything else. Answers are always live, never cached.
Generate post copy — /api/generate
Where: Direct URL only — nothing in the app currently calls it.
Access: Must be signed in, and the product has to belong to your active workspace.
Writes post copy for a set of platforms without creating a campaign or saving anything — useful if you want the words and nothing else.
What you can do here
- Ask for copy for one or more platforms against one of your products — returns variants per platform.
Good to know: Needs an AI provider configured on the deployment or it refuses outright. Platforms your plan doesn't include are skipped with an "upgrade to generate for it" note rather than failing the whole request, and if you hit your credit allowance it stops there rather than churning through the rest. Paid plans get the higher-quality model.
Generate landing copy — /api/landing/generate
Where: Not a page. It is behind the Generate button on the copy panel of the Landing page.
Access: Must be signed in, in a workspace that isn't read-only, with a product in that workspace.
Writes the headline-and-body copy for your landing page from the product brief you've already filled in, so you have something on the page instead of a blank editor.
What you can do here
- Generate landing copy for the selected product — returns the copy for you to review before it's saved.
Good to know: Needs an AI provider configured or it refuses with a message saying so. A read-only workspace (an ended trial) is blocked, and a used-up credit allowance is reported rather than silently failing. Paid plans get the higher-quality model.
Create a campaign — /api/campaigns/create
Where: Not a page. It is what the campaign wizard submits.
Access: Must be signed in, in a workspace that isn't read-only, with a product in that workspace.
Creates the campaign and drafts one post per platform you ticked, each with its own tracked link so you can tell later which platform actually sent traffic.
What you can do here
- Name the campaign, pick a product and pick platforms — creates the campaign and a draft post for each platform.
- Read the warnings that come back — they name the platforms whose draft still has blanks you need to fill in before it can be scheduled.
Good to know: If you tick a platform your plan doesn't include, nothing is created at all — you're told to upgrade or deselect it first, so a half-made campaign never burns your campaign allowance. If no AI provider is configured, or generation fails or hits your plan limit, you still get the campaign and its posts, filled with basic placeholder copy and a warning saying what happened. Creating a campaign counts against your plan's campaign allowance.
Post text — /api/posts/[id]
Where: Not a page. The post editor calls it for you after you switch to a different copy variant.
Access: Must be signed in; only posts belonging to your active workspace are returned.
Fetches the freshly re-rendered text of a post so the editor shows the variant you just picked, formatted for its platform, rather than the one you had before.
What you can do here
- Nothing directly — it has no controls of its own.
Upload an image — /api/images/upload
Where: Not a page. It is behind the uploader on the Images page.
Access: Must be signed in, in a workspace that isn't read-only, uploading against a product in that workspace.
The only way a picture gets into your product asset library — the screenshots, logos and gallery images your press kit, directory listings and waitlist page all pull from.
What you can do here
- Upload a PNG, JPEG, WebP or GIF against a product, optionally labelling what kind of image it is — the library entry is created in the same step.
Good to know: 10 MB maximum. The file's actual contents are checked, and an upload whose real type disagrees with what your browser claimed is refused with the mismatch spelled out — nothing is stored. Uploads cut off mid-transfer are detected and rejected rather than saved as a corrupt image. New images go to the end of their group, and directories treat the first gallery image as the hero. A read-only workspace can't upload at all.
Upload a video — /api/videos/upload
Where: Not a page. It is behind the video attach control in the post editor.
Access: Must be signed in, in a workspace that isn't read-only, on a plan that includes video uploads.
Attaches a video to a post for platforms that take one, storing it in the same product library your other assets live in.
What you can do here
- Upload an MP4, WebM or MOV against the post's product — on success it is attached to that post.
Good to know: Video uploads are a Pro and Scale feature; on a lower plan you get a plain "upgrade to attach videos" message rather than a silent failure. 50 MB maximum. As with images, the real file type is checked against what was claimed, and a transfer that gets cut off is removed rather than left as a half video that would fail at publish days later. If the video storage bucket hasn't been set up on the deployment, the error says exactly that.