Docs Home Beam MCP APIs

Lightmeter Beam

Campaign Manager User Manual

Overview

Beam is Lightmeter’s campaign workspace for growth teams running outbound at startup speed.

Use Beam to build multi-step sequences, manage A/B variants, monitor performance, and act quickly when a variant underperforms.

  • Create campaigns, prepare leads and sequences, and submit them for review when ready.
  • Prepare and review campaign wording in Creative before choosing what the campaign should use for future sends.
  • Use Unibox for one-to-one follow-up through Interactive Replies.
  • Pause active campaigns, deliberately End or Fast Forward them, reopen ended campaigns for review, and Resume paused campaigns after readiness checks.
  • Drill down from Reports directly into campaign analytics for action.
Workspace access

A disabled workspace shows a yellow Workspace disabled banner. Campaign sending has stopped. Campaigns that were Sending, Paused or Ending display a neutral Stopped status; campaign creation, duplication, review submission and sending controls are hidden. This display does not change the campaign's saved status or historical results.

If Unibox access remains open, the banner says Campaign sending has stopped. You can read and reply in Unibox until <date, time>. Select Open Unibox to continue existing conversations. Dates and times use your browser's timezone. Existing access without an end date omits the deadline.

After access ends, the banner says Campaign sending has stopped. Unibox access ended on <date>. The Unibox body shows only Unibox access ended on <date>., without filters, threads or New Message. If no end date is stored, the message is Unibox access ended.

Glossary / Definitions
  1. Reply Rate: replies ÷ (leads contacted − all bounces).
  2. Positive Reply Rate: positive replies ÷ (leads contacted − all bounces). See What Counts as a Positive Reply.
  3. Positive Reply Share: positive replies ÷ total replies.
  4. Campaign Reply Counting: campaign-level reply totals are deduplicated by sender within a campaign (a sender contributes at most one reply unit).
  5. Interactive Replies (Unibox): outbound one-to-one replies sent manually by your team from the Unibox.
  6. Threaded Steps: scheduled campaign steps configured as thread. These are different from Interactive Replies.
  7. Completed Contacts: contacts that will receive no more campaign messages, whether their sequence finished or sending became impossible.
  8. Size: average email body size for the step or variant, measured in bytes.
  9. Infra Health: mailbox deliverability/reputation score for the selected report period.
  10. Positive conversation: a conversation whose current Unibox classification is Positive. Summary, Reply handling, Revenue and Booked Positive conversations use this definition. See Reports.
  11. Booked meetings: attributed, scheduled meetings booked in the selected dates by Leads your workspace emailed. Assists are counted separately. See Booked Meetings & Connected Calendars.
Core Workflow
  1. Create a campaign and assign leads.
  2. Set your sending schedule and mailbox limits.
  3. Prepare wording in Edit Campaign → Creative.
  4. Approve and mark a Creative snapshot Ready when the campaign should use it for future sends.
  5. Preview and test message content.
  6. Submit the campaign for review when it is ready to send.
  7. Once the campaign is active, monitor results in Edit Campaign → Analytics and Reports, then optimize.
  8. Pause active sending when campaign-level control is needed, End a campaign when future campaign work should stop while its data remains available, or use Fast Forward after the campaign reaches 95% completion.
  9. Reopen an ended campaign or reactivate a naturally completed campaign into paused review when it needs to be inspected or prepared again. Add leads while it is paused, then Resume after readiness checks pass.
  10. When a lead replies and needs human follow-up, send an Interactive Reply from the Unibox.
Creative Preparation

Use Edit Campaign → Creative to prepare the campaign's editable working copy. Creative changes do not alter an immutable snapshot already selected for sending.

Working copy, snapshots, and Ready Creative

  • Creative is the single editable, autosaved, collaborative working copy.
  • A snapshot is an immutable saved version. Historical snapshots are Not approved or Approved.
  • Ready identifies the approved snapshot selected for future campaign sends. When another approved snapshot becomes Ready, the earlier one is Replaced.
  • Approve and mark ready performs both actions together for now. Approval records acceptance; Ready records which approved snapshot the campaign will use.
  • Restoring a snapshot copies its content into Creative for editing. It does not modify the snapshot.

Separate status meanings

  • Creative version: working copy or historical snapshot.
  • Snapshot approval: Not approved or Approved.
  • Snapshot readiness: Ready or Replaced. An approved snapshot that has never been Ready needs no readiness label.
  • Component eligibility: Enabled or Disabled. In Creative this plans eligibility for the next Ready snapshot; in Ready and Analytics it changes current eligibility.
  • Campaign runtime: Draft, Submitted, Active, Paused, Ending, Ended, or Completed. Ready Creative does not mean that the campaign is active. Completed is natural completion; Ended is a deliberate stop.
  • Editor connection: Live or Offline. This describes collaboration only, never sending.

Comments and Versions

  • Comments stay with Creative and do not change campaign sending behavior.
  • Save a snapshot before larger edits, review milestones, or handoff to Steps.
  • Actual sending is established by campaign activity and message history, not by Ready or Replaced labels alone.

Generated Creative and Privacy

Use Generate… to convert marketing materials into a three-step Creative draft using AI. Describe the audience and offer, then paste source text or choose or drag and drop a TXT, Markdown, or PDF file. If needed, open Additional prompt for AI copywriter to change copy style, length, punctuation, greeting layout, or sign-off format. Those optional instructions cannot change privacy, source grounding, threading, supported variables, or the fixed three-step structure. Review or retry individual components in the preview, then insert the draft and edit it in Creative. By default, generated bodies use {{senderFirstName}} for the sending mailbox identity in the sign-off.

Audience, offer, source material, and any optional additional instructions are sent to the specified third-party hosted AI model to generate the draft. The audience, offer, uploaded file, pasted source, and additional instructions are not saved in Beam. The generated preview is not inserted into Creative until you choose Insert or confirm a replacement.
Email infrastructure

Use Email infrastructure to see how your sending domains and mailboxes are distributed across campaigns and which inventory is currently unused.

  • Capacity shows daily capacity, recent sends and how long loaded leads last. Loaded leads last until and its count of leads not yet contacted include only leads that can send. A Not counted line lists leads that are unsendable or awaiting their email check.
  • Allocation shows each campaign's lead progress. Its Leads bar splits leads into Completed, Started, New and, when there are any, can’t send: new leads that are unsendable or awaiting their email check.
  • Domains shows each domain’s current status, total active mailbox count, recent mailbox activity, and linked campaign assignments.
  • Mailboxes shows each mailbox’s warming indicator, assignment status, linked campaigns, and Last activity time.
  • Distribution shows inventory usage by campaign so you can see assigned versus recently used domains and mailboxes at a glance.
  • Use Activity range to change the recent-activity window on Domains, Mailboxes and Distribution. Last 5 days is the default.
  • In a domain, mailbox or campaign filter, type part of a name and press Enter to keep it as one Contains “…” filter. Use the arrow keys to pick a single suggestion instead. Several filters show rows that match any of them. Settings → Activity and a campaign's Infra tab use the same filter fields.
  • Click counts, chips, or inventory pills to open the matching filtered view or jump straight to campaign analytics.
Use Email infrastructure for review and navigation. It does not change mailbox, domain, or warming settings. Domain walk-in tracking settings are the exception; see Walk-in Tracking.
Team Members

Use Team to see who has workspace access, invite new members, review setup status, and manage workspace roles.

  • Open Team from the main navigation, or open Settings → Team.
  • Use the search box, role filter, setup filter, and access filter to find the right person quickly.
  • Use the sortable columns to review members by name, role, setup status, safeguard status, or last activity.

Invite a Member

  1. Click Invite Member.
  2. Enter the person's email address, first name, and last name.
  3. Choose a role if the role selector is shown.
  4. Click Invite Member.
  5. Copy the setup link and send it to the person through a channel your team trusts.
Setup links are single-use after the invited member completes hosted sign-in and expire after 30 days. If a pending member needs a fresh link before first sign-in, an admin can create one from the Team table.

Roles and Permissions

Role What they can do on Team
Member Invite another normal workspace member and view the team list.
Admin Invite members or admins, change Member/Admin roles, remove workspace access, and create fresh setup links for pending members.
Owner Appears in the team list as a workspace manager. Owner role changes and owner access removal are not handled from Team.

Manage Existing Members

  • Use the Role column to change a member between Member and Admin when you have permission.
  • Use Setup to see whether first-time setup is complete or still pending.
  • Use Safeguards to review visible account protection signals such as password or multi-factor authentication status.
  • Use the setup-link action for pending members who need a fresh setup link before first sign-in.
  • Use the remove-access action when someone should no longer be able to use the workspace.
Removing access stops the person from using the workspace. It does not remove their past campaign, reply, or activity history.
What Counts as a Positive Reply

A positive reply is a human reply to a campaign that shows buying interest or creates concrete progress in the sales conversation.

Performance pricing: Only positive replies count. Neutral and negative replies, automated messages, bounces, and delivery failures do not.

Counts as positive

  • Agrees to a call, demo, meeting, or specific next step.
  • Asks for pricing, a quote, a proposal, or commercial details.
  • Asks substantive questions about fit, scope, integration, implementation, comparison, or security.
  • Says they want to proceed, sign up, buy, evaluate, or try the offer.
  • Shows interest and brings in colleagues, decision-makers, or other stakeholders.
  • Says they will champion, forward, or raise the opportunity internally.
  • Directs you to a specific person or role who handles this, or gives a specific person's address.

Does not count

  • Out-of-office replies, autoresponders, bounces, delivery notifications, impersonal departure notices, or other automated messages.
  • Unsubscribe, removal, or stop-contacting-me requests.
  • Clear rejections such as “no”, “not interested”, or “not for us”.
  • Objections that reject the offer, including price or company-policy barriers.
  • Wrong-person replies that do not name a specific person or role who handles this, including generic mailboxes, help desks, departments and address corrections.
  • “Follow up later”, “not right now”, budget-cycle timing, or “maybe next quarter” replies.
  • “We already use a competitor” or “we built this internally”, unless the reply also asks to explore further.
  • A reply saying only that the email was passed along, with no interest or next step.

For the complete 17-category reference, see How Replies Are Classified.

How Replies Are Classified

Each classified reply has two labels: one of Positive, Neutral, or Negative, and one specific reply category. The first label determines whether the reply counts as positive; the reply category records its primary intent. Clarification request, Multi-stakeholder interest and Internal referral can each be Positive or Neutral. Unqualified filter[reply_subcategory]=clarification_request, filter[reply_subcategory]=multi_stakeholder_interest or filter[reply_subcategory]=internal_referral returns both Positive and Neutral replies; add filter[reply_primary_category] to narrow it.

Positive 6 categories

Counts as a positive reply because it shows buying intent or creates a concrete sales next step.

  • Immediate conversionThe recipient is ready to buy, sign up, or proceed now.
  • Meeting scheduledThe recipient agrees to a call, demo, meeting, or specific next step.
  • Requested proposalThe recipient asks for a quote, proposal, pricing, or commercial details.
  • Internal referralThe recipient will advocate for or raise the opportunity internally, or directs you to a specific person or role who handles this.
  • Multi-stakeholder interestThe recipient brings in colleagues, decision-makers, or other stakeholders.
  • Clarification requestThe recipient asks substantive questions about the offer, fit, implementation, or security.

Neutral 9 categories

Does not count as a positive reply. It keeps context for follow-up without treating the conversation as a sales conversion.

  • Budget cycle timingThe recipient shows interest but timing or a future budget cycle prevents progress now.
  • Follow up laterThe recipient asks to reconnect at a future date or after a specific event.
  • Using competitorThe recipient already uses another provider and does not ask to explore further.
  • Internal solutionThe recipient uses an in-house alternative and does not ask to explore further.
  • Automated responseThe message is an out-of-office reply or another automated response.
  • Wrong personThe recipient is not the right contact and names no specific person or role to contact, including generic mailboxes, help desks, departments and address corrections.
  • Clarification requestA question without clear buying interest, including confusion or checking who sent the message.
  • Multi-stakeholder interestThe recipient only says they passed our email along elsewhere, with no interest and no next step. Adding, copying or looping someone into this email thread is Positive.
  • Internal referralAvailable as a manual correction when a referral should not count as Positive. Named referrals are classified as Positive by default. A Neutral Internal referral from an inbound reply sets the state and fires lead_wrong_person only when the lead has no existing supported state. A manual correction updates the classification and does not fire this event. The event can carry subcategory internal_referral. A reply arriving with this classification uses no credit. Requesting a correction of an already charged reply does not itself refund the credit. When the correction is resolved as Neutral, the charge is refunded if no other Positive reply remains for that campaign lead; otherwise the existing charge is kept.

Negative 5 categories

Does not count as a positive reply because it rejects the offer or ends further contact.

  • Direct rejectionThe recipient gives a clear no, such as “not interested” or “not for us”.
  • Specific objectionThe recipient rejects the offer with a reason that is not primarily price or policy.
  • Price objectionThe recipient identifies cost or affordability as the barrier.
  • Unsubscribe requestThe recipient asks to be removed or not contacted again.
  • Company policyAn organizational rule prevents the recipient from engaging.
Unibox Reply Filters

Use the Unibox reply classification and category filters to find campaign reply threads by their current classification.

  • The top-level options are Positive, Neutral, and Negative.
  • Reply category records the specific reason, such as Meeting scheduled, Follow up later, or Direct rejection.
  • The filters apply to threads, not individual messages. A matching row opens the full thread.
  • The filter uses the current stored reply classification for the campaign lead. It is not limited to the first email in the thread, and it does not hide other messages in a matching thread.
  • If you select a top-level option and a reply category, both must match. For example, Negative plus Direct rejection shows threads currently classified as Negative and Direct rejection.
  • For reporting, each thread counts as either Positive or Not positive. A later neutral or negative reply does not automatically change an already-positive thread to Not positive. An applied correction updates the current classification.

Message history can contain more than one classified reply over time. The Unibox list filter uses the current stored lead classification for the thread.

Correct a Reply Classification

You can correct whether a reply is Positive, Neutral, or Negative, as well as its reply category, from the conversation view.

  1. Open the Unibox and select the conversation.
  2. In the conversation header, find the Reply classification control and select Positive, Neutral, or Negative. Select the current option if only the reply category needs changing.
  3. In Suggest classification correction, confirm the Positive, Neutral, or Negative choice, select the matching Reply category, and optionally add context under Why?.
  4. If the correction can affect performance pricing, review the impact shown in the dialog, then select Submit correction.
  5. To see the current category and any pending category, select Show reply subcategory in the conversation header.
When applied, the correction updates reporting and can affect performance pricing.
Walk-in Tracking

Measure requests to the root of your sending domains, such as https://sending.example/, and redirect visitors to your website. Walk-in requests are separate from campaign-link clicks, which use personalized links inside campaign emails.

Enable Workspace Tracking

Open Settings → Tracking → Walk-in tracking. Tracking starts off. Turn on Track walk-in visits, review the default destination and source tag, then select Save Walk-in Settings. Workspace members can inspect settings; workspace managers can save changes.

Change Several Domains at Once

  1. Open Infra → Domains or Infra → Mailboxes. Select domain checkboxes to select their mailboxes, or select individual mailboxes.
  2. Select Bulk actions…. The walk-in controls open directly for workspace managers. If other bulk-action tabs are available, choose Walk-ins.
  3. Review Affected domains. The selection is deduplicated: selecting several mailboxes on one domain changes that domain once, including its other mailboxes. Each action supports 1 to 200 unique domains.
  4. Select Enable walk-in tracking or Disable walk-in tracking and wait for the saved confirmation. Enabling requires workspace tracking to be on. Disabling remains available while workspace tracking is off.
  5. To change where visitors land, choose Default under Destination to follow the workspace destination, or Custom and enter one Destination URL for every selected domain. Each affected domain shows its current destination and the new one, or No change. Select Save Destination. Default is unavailable until a default destination is set in Tracking settings, and destination controls are unavailable while workspace tracking is off.

Enabling or disabling changes domain participation in tracking and UTM tagging. Each bulk action saves every selected domain together; if any domain cannot take the change, nothing changes. Saved analytics labels stay the same, and issued campaign links keep their saved destinations. If the saved outcome cannot be confirmed, refresh to check the current settings before retrying.

Set a Domain Destination and Tags

  1. On Infra → Domains, expand a domain and choose its Settings tab. This also works for a domain with no visits.
  2. Choose Default to follow the workspace destination, or Custom for a separate URL. Changing the workspace default updates domains that follow it and preserves custom destinations.
  3. Set domain participation and the optional campaign tag, review Destination preview, then select Save Domain Settings. URLs must use HTTP or HTTPS, contain no login credentials, and avoid a redirect back to the same domain. Domain settings are unavailable while workspace tracking is off.

Pausing workspace tracking preserves redirects and configured UTM tags. Turning off domain participation stops tracking for that domain and stops adding its configured UTM tags. Add default source tag is an independent workspace setting. Destination query parameters and fragments are preserved. Changing a domain destination does not change destinations saved in issued campaign links.

Read Walk-in Results

Review Walk-in visits on Infra → Domains for the selected activity range. The report covers all workspace domains; inventory filters apply only to the inventory. Select Include retired domain history to inspect retained observations for retired domains.

The report status is Active, Disabled, Status unavailable, or Incomplete. Status unavailable means current domain availability has not been confirmed; saved settings and recorded requests remain visible. Incomplete means there are gaps in tracking or classification. Unconfirmed reachability does not prevent an arriving request from redirecting or being recorded when tracking is permitted.

Visits shows the retained navigation estimate in standard text. A grey bracketed optimistic total appears only when positive uncertain navigation evidence adds visits; the bracketed number includes the primary count and is always larger. Its tooltip is “Optimistic total, including uncertain visits.” These are visit estimates, not verified humans, recipients, or unique visitors. Technical request classifications remain available to integrations, while normal summaries keep this compact display. A successful empty report shows zero; tracking coverage and API errors retain their separate states.

Visits uses the same network evidence as campaign Clicks. A walk-in counts when a current browser navigates from an ordinary ISP or business network, or through a recognized relay service such as Apple Private Relay, and the bot check finds no bot. Visits from other VPN, proxy and hosting networks are not counted, because almost all such walk-in traffic is automated. A walk-in is also not counted when its domain had not yet sent campaign email, or when the request matches patterns typical of automated scanning. Some genuine visits can also go uncounted, for example from a shared office network or your own test visits. A visitor who opens several of your walk-in domains can count once on each. Walk-ins from the last 24 hours are provisional and can still move out of Visits as later traffic arrives.

Current-campaign associations capture an unambiguous current campaign at the time of the visit. They do not prove which campaign caused a visit. Ambiguous or unsupported associations remain unassigned.

For integrations, see the workspace Tracking settings API, domain, bulk walk-in, and reporting API, and Lightmeter MCP tools.

Average customer value

Set your average customer value in Settings → General. This is what a customer is typically worth to you, used to show what interested leads could be worth.

Enter an amount greater than zero in USD and choose One-off, Monthly, or Annual. Values are never converted. Each changed value preserves earlier dated values; saving the same amount and period changes nothing. An unset value appears as an en dash (–). Onboarding asks optionally; a blank answer stores nothing. Admins and Owners can save this setting. Reports do not use it yet, and this release has no action to clear a saved value.

Reply Forwarding

Reply forwarding sends selected replies from your leads to the email addresses you choose. Configure it in Settings → General → Reply forwarding.

Choose Which Replies to Forward

  • Off does not forward replies by email.
  • All replies forwards each reply from a lead except automated replies, bounces, unsubscribe requests, and warming messages.
  • Replies in positive threads forwards Positive replies, Neutral Clarification requests, Neutral Multi-stakeholder interest replies, Neutral Internal referrals, and later replies in those qualifying threads. For Neutral eligibility, the latest classification for each reply applies, with manual corrections winning over AI; a manual conversation decision limits earlier replies to its evidence message, while a new reply can qualify itself. Historical repair and manual relabeling do not replay old replies.

In Reply forwarding addresses, enter an email address and select Add address. A test email checks whether its mail server accepts the address before it is saved. This check does not confirm inbox placement or address ownership. Select Remove beside a saved address to review its removal, then choose Remove address or Cancel. Removing the last address leaves no destination for forwarded replies; the forwarding mode stays unchanged. Admins and Owners can add and remove reply forwarding addresses without replacing existing recipients. Each new address receives eligible replies from all workspace mailboxes. You can add up to 20 additional addresses; your workspace default and mailbox-specific destinations do not count toward this limit. Existing mailbox-specific destinations retain their scope, shown beside the address. Addresses remain visible while forwarding is Off.

What the Forwarded Email Looks Like

Forwarded messages are designed to look and behave like the lead's original reply. They do not add a forwarding label or visual banner, so the message may look as though the lead emailed your destination address directly.

When you click Reply, your reply is sent from the mailbox where you read the forwarded message, not from the managed mailbox that originally sent the campaign. Check the sending address before replying if the identity matters.

Email and Webhook Notifications

Reply forwarding only controls email delivery. It does not change your webhooks, which can send reply notifications to another application or destination.

Webhooks & Integrations

Beam can notify your CRM, workflow tool, or internal application automatically when important events happen.

A webhook is an automatic notification that Beam sends to an endpoint you choose. Your system can listen for these notifications and take action immediately, for example by creating a CRM task, updating a pipeline stage, or alerting a sales rep.

  • Use webhooks when you want Beam to push information out in real time.
  • Webhook setup is available in Settings → Webhooks.
  • Beam supports both Beam-native webhooks and Instantly-compatible webhook events for customers migrating from Instantly.
If you are moving from Instantly and already have automations in place, choose one of the Instantly-compatible events below.

Start Here

Most teams use Beam webhooks to send reply notifications into Slack. Start with the direct Slack setup below, then use the rest of this section as a reference.

Quick Start: Slack Reply Notifications

If you want Beam to notify a Slack channel when leads reply, this is the fastest path.

  1. In Slack, create a simple app in the workspace where you want the notifications to appear.
  2. Open Incoming Webhooks in the Slack app settings and turn them on.
  3. Click Add New Webhook, choose the Slack channel, and copy the generated https://hooks.slack.com/services/… URL.
  4. In Beam, open Settings → Webhooks and create a new webhook.
  5. Set the format to Slack.
  6. Select positive_reply for Positive conversations and qualifying Neutral Clarification request, Neutral Multi-stakeholder interest or Neutral Internal referral threads, including later replies in those threads. Neutral threads use the heading Beam Replies to Review.
  7. Select reply_received if you want every qualifying human reply, including replies that Lightmeter does not classify as interested. You can select both when your endpoint should receive both event streams.
  8. Paste the Slack incoming webhook URL, send a test for each selected event, and save the webhook.
Use direct Slack, not Zapier, when you want Beam's formatted Slack notification to render correctly. Zapier often rewrites or flattens the payload.

For positive_reply subscriptions in slack or slack_native format, a thread qualifies when it contains an effective Neutral reply in a category that can be Positive or Neutral (Clarification request, Multi-stakeholder interest or Internal referral). Effective means the latest classification for that reply, with manual winning over AI. Under a manual conversation decision, earlier replies qualify only through its evidence message; a new trigger reply can itself qualify. Later replies, including rejections, continue to notify while eligibility remains. These notifications use Beam Replies to Review as their heading and Zulip topic, with is_first_positive_reply=false. They do not change billing, Positive counts or lead_interested. Only new inbound processing sends them: historical repair, suppressed delivery and manual relabeling do not replay old mail. Standard and other non-chat webhook contracts are unchanged. Neutral replies in these categories reach reps through forwarding, Slack, Zulip and the Unibox; they do not sync to the CRM yet.

How To Set Up A Webhook

  1. Open Settings.
  2. Go to Webhooks.
  3. Enter a name and paste the HTTPS endpoint.
  4. Choose the delivery format. The event list updates to show every event that format supports.
  5. Select one or more events. One webhook configuration can send every selected event to the endpoint.
  6. Use the test action to send one sample request for each selected event and review every result.
  7. Save the webhook. Signed formats use one signing secret across all events in the configuration.

We recommend using an HTTPS endpoint that your team controls.

reply_received already includes positive and lead-state replies. If you also select narrower events, the endpoint receives the reply_received request plus one additional request for every selected narrower event that matches that reply. Choose reply_received alone for every reply, or choose only the narrower events for filtered notifications.

Verify Signed Webhook Deliveries

Standard JSON + HMAC and Instantly-compatible webhook deliveries include HMAC headers so your endpoint can verify that the request came from Lightmeter before processing it.

  1. Create a webhook in Settings → Webhooks.
  2. Copy the signing secret shown after creation. It is shown once.
  3. When your endpoint receives a webhook, read the raw request body before parsing JSON.
  4. Build the signed content as Webhook-Id.Webhook-Timestamp.raw_body, using the header values exactly as received.
  5. Compute an HMAC-SHA256 digest with the signing secret and compare it to the v1 signature using a constant-time comparison.
  6. Reject deliveries with old timestamps, invalid signatures, or duplicate Webhook-Id values.
Header Value
Webhook-Id Stable delivery event identifier. Use it as an idempotency key.
Webhook-Timestamp Unix timestamp in seconds.
Webhook-Signature v1, followed by the Base64-encoded HMAC-SHA256 digest.
signed_content = Webhook-Id + "." + Webhook-Timestamp + "." + raw_request_body
expected = "v1," + base64(hmac_sha256(signing_secret, signed_content))

You can rotate a webhook's signing secret from Settings → Webhooks. Copy the new secret immediately after rotation, then update your receiving endpoint before relying on future deliveries.

Slack and Zulip delivery formats are intended for chat destinations and do not include signing headers. Use Standard JSON + HMAC or Instantly-compatible delivery when your own endpoint needs signature verification.

Webhook Events You Can Use

Event Ways Beam can send it Use it when What happens
positive_reply standard, slack, slack_native You want sales to see the replies that matter most A lead replies in a way Beam sees as positive, including later replies in an already-Positive conversation. Only slack and slack_native also notify qualifying Neutral Clarification request, Neutral Multi-stakeholder interest or Neutral Internal referral threads; standard and all non-chat formats retain the Positive-only contract.
deal_summaryslack_nativeWeekly Commercial progress and follow-up needsDelivery starts after staff approval. See Deal Slack Report.
campaign_created standard, slack, slack_native, instantly_compatible You want another system or team to know a new campaign exists A campaign is created. Beam includes the workspace, campaign link, and campaign details that are available.
campaign_submitted standard, slack You want to track campaigns submitted through the API A campaign is submitted through the Beam API.
reply_received slack, slack_native, instantly_compatible You want every human reply, not only positive ones A real person replies to a Beam campaign thread.
email_sent instantly_compatible You are moving an Instantly-style send workflow to Beam Beam sends and stores a campaign email.
email_bounced instantly_compatible You want to react when a campaign email bounces A sent campaign email bounces and Beam can match the bounce back to the campaign.
lead_interested slack, slack_native, instantly_compatible You want to move or qualify a lead when they become interested Beam marks the lead's current reply state as interested.
lead_not_interested slack, slack_native, instantly_compatible You want to route or suppress leads who say no Beam marks the lead's current reply state as not interested.
lead_wrong_person slack, slack_native, instantly_compatible You want to clean up wrong-person contacts Beam marks the lead's current reply state as wrong person. A reply naming who handles this is Positive Internal referral and fires lead_interested instead, so an automation on lead_wrong_person does not receive it. A Neutral Internal referral from an inbound reply sets this state and fires lead_wrong_person only when the lead has no existing supported state. A manual correction updates the classification and does not fire this event; the event can carry subcategory internal_referral.

Positive Reply, Reply Received, And Lead Interested

These three sound similar, but they answer different questions.

  • Use positive_reply when you want people to look at the replies most likely to turn into sales conversations.
  • Use reply_received when you want every human reply, including neutral and negative replies.
  • Use lead_interested when another system should run only when a lead moves into the interested state.

When you use standard, the JSON also tells your endpoint whether this is the first positive reply or a later reply in an already-positive conversation.

What you want Use this event Works with Plain-English note
Only the replies your team is most likely to care about positive_reply standard, slack, or slack_native Standard delivery retains the Positive-only contract. Chat formats also include qualifying Neutral Clarification request, Neutral Multi-stakeholder interest or Neutral Internal referral threads and later replies. This event does not use the Instantly-compatible format.
Every human reply, even when it is not positive reply_received slack, slack_native, or instantly_compatible Choose this if you want every human reply rather than only qualifying conversations.
A lead becoming interested, not every later reply from that lead lead_interested slack, slack_native, or instantly_compatible Choose this for handoff rules that should run once when the lead becomes interested.

Ways Beam Can Send Webhooks

Format Good for In plain English
standard Your own app, CRM, or workflow endpoint Beam sends a structured JSON message. Your endpoint can verify the signature before trusting it.
slack Zulip Beam sends a short chat message that Zulip incoming webhooks can display.
slack_native Slack channels Beam sends a Slack-friendly message with the layout Slack expects. Use a direct Slack incoming webhook URL.
instantly_compatible Existing Instantly-style automations Beam sends flat JSON fields that are easier to plug into automations that already expect Instantly-style webhooks.

Short Webhook Examples

These examples show the basic shape of each option. Real webhook tests use the same shape, with your actual campaign, lead, and message details.

Standard JSON + HMAC

Choose standard when you are sending webhooks to your own system and want to check that the message really came from Beam.

{
  "id": "evt_019ce214-f5f1-7806-b1b3-a6e02f403819",
  "version": "1",
  "timestamp": "2026-03-06T09:15:00Z",
  "event_type": "positive_reply",
  "campaign": {
    "id": "campaign_123",
    "name": "Spring CTO Outreach"
  },
  "lead": {
    "email": "alex@example.com",
    "first_name": "Alex",
    "company": "Example Inc"
  },
  "event_data": {
    "message_preview": "Sounds good, please send times.",
    "classification": {
      "primary_category": "positive",
      "subcategory": "meeting_requested",
      "confidence": 0.95
    },
    "is_first_positive_reply": true,
    "is_positive_conversation_follow_up": false
  }
}

Zulip-Compatible Chat Message

Choose slack for Zulip. The saved format name is slack because Zulip accepts Slack-style incoming webhooks. Beam also adds the Zulip topic to the delivery URL.

{
  "text": "**Lead:** Alex Rivera (alex@example.com)\n**Message** [🔗](https://app.example.com/beam_ui/unibox/thread_123): Sounds good, please send times."
}

Slack-Native Chat Message

Choose slack_native for Slack. Beam sends plain text plus Slack blocks so the message looks clean in a Slack channel.

{
  "text": "Spring CTO Outreach\nalex@example.com\n\nStep: 2\nVariant: 1\n\nReply:\nSounds good, please send times.",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "Spring CTO Outreach\n<mailto:alex@example.com|alex@example.com>"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "<https://app.example.com/beam_ui/unibox/thread_123|Reply>:\nSounds good, please send times."
      }
    }
  ]
}

Instantly-Compatible JSON

Choose instantly_compatible when you already have an automation built around Instantly-style fields.

{
  "timestamp": "2026-03-06T09:15:00Z",
  "event_type": "reply_received",
  "lead_email": "alex@example.com",
  "campaign_id": "campaign_123",
  "campaign_name": "Spring CTO Outreach",
  "email_id": "019ce214-f5f1-7806-b1b3-a6e02f403819@beam.test",
  "reply_text": "Sounds good, please send times.",
  "unibox_url": "https://app.example.com/beam_ui/unibox/thread_123",
  "step": 2,
  "variant": 1
}

Direct Slack Details

If you want Beam notifications to render cleanly in Slack, send them directly to a Slack incoming webhook URL.

  • Use the slack_native format in Beam for direct Slack delivery.
  • Do not put Zapier in the middle if you care about message formatting. Zapier often rewrites or flattens the payload, which breaks the Slack layout Beam sends.
  • Your team does not need a Slack Marketplace app from Lightmeter. You create a simple Slack app inside your own Slack workspace and use its incoming webhook URL.
Each Slack incoming webhook URL is tied to one Slack workspace and one channel. If you want Beam notifications in multiple channels, create one webhook URL per channel.

Which Beam Events Support Direct Slack

Slack-native delivery is currently available for campaign-created and reply-related events.

  • campaign_created
  • positive_reply
  • reply_received
  • lead_interested
  • lead_not_interested
  • lead_wrong_person

email_sent and email_bounced currently use the instantly_compatible format only.

What The Slack Message Includes

Beam's direct Slack format is designed for human-readable campaign and reply notifications.

  • Campaign name
  • Reply sender email
  • Step and variant when available
  • A Reply link that opens the matching Unibox thread when Beam has a Unibox URL
  • A truncated reply preview so long quoted email chains do not flood the Slack channel

Instantly-Compatible Events

Beam currently supports seven Instantly-compatible events. These are the recommended choices if you already have downstream automations that expect Instantly-style webhooks.

  • campaign_created is sent whenever a campaign is created and includes workspace details, campaign details, and a campaign edit link.
  • email_sent is sent for each successfully persisted outbound campaign send.
  • email_bounced is sent for each campaign-matched bounce after Beam marks the original outbound message as bounced, stores the inbound bounce, and updates the campaign lead to bounced.
  • reply_received is sent for each qualifying human reply.
  • lead_interested, lead_not_interested, and lead_wrong_person describe the lead's current supported reply state.
  • Only campaign-matched bounces emit email_bounced. Orphan or unmatched bounce traffic does not emit a customer-facing webhook.
  • Beam keeps campaign analytics separate from webhook delivery, so receiving more than one reply does not inflate your campaign reply counts.
If you use Instantly-compatible webhooks and need follow-up replies from leads who were already interested, subscribe to reply_received. lead_interested is a state-transition event and does not fire for every later reply in an already-interested conversation.

email_id is included on email_sent and reply_received. It is Beam's outbound email message_id in stored form (uuid@domain, without angle brackets). Use it as a stable correlation key across send, reply, retry, and debugging workflows. Beam does not currently expose a public API endpoint that accepts email_id, so treat it as an identifier for reconciliation rather than as a reply token.

Email field semantics for reply-related events:
  • For reply_received, lead_email and email use the actual inbound sender address when Beam can determine it. If the sender address is unavailable, Beam falls back to the matched lead / original thread recipient email.
  • For lead_interested, lead_not_interested, and lead_wrong_person, lead_email and email stay on the matched lead / original thread recipient email.
  • Use email_id as the primary correlation key if you need to join email_sent and reply_received, because the reply sender address can differ from the original outbound recipient.

Example: email_sent

{
  "timestamp": "2026-03-06T09:15:00Z",
  "event_type": "email_sent",
  "workspace": "workspace_123",
  "campaign_id": "test-campaign-1234",
  "campaign_name": "Test Campaign",
  "email_id": "019ce214-f5f1-7806-b1b3-a6e02f403819@beam.test",
  "lead_email": "test@example.com",
  "email": "test@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "companyName": "Example Inc",
  "email_account": "campaign@beam.test",
  "email_subject": "Re: your invite: AI event in Munich",
  "email_html": "
John,

Can I reserve you a seat?
", "is_first": false, "unibox_url": null, "step": 2, "variant": 1 }

Example: email_bounced

{
  "timestamp": "2026-03-06T09:15:00Z",
  "event_type": "email_bounced",
  "workspace": "workspace_123",
  "campaign_id": "test-campaign-1234",
  "campaign_name": "Test Campaign",
  "lead_email": "test@example.com",
  "email": "test@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "companyName": "Example Inc",
  "email_account": "campaign@beam.test",
  "unibox_url": null,
  "step": 2,
  "variant": 1
}

Example: reply_received

{
  "timestamp": "2026-03-06T09:15:00Z",
  "event_type": "reply_received",
  "lead_email": "replying.sender@example.net",
  "workspace": "workspace_123",
  "campaign_id": "test-campaign-1234",
  "campaign_name": "Test Campaign",
  "email_id": "019ce214-f5f1-7806-b1b3-a6e02f403819@beam.test",
  "email": "replying.sender@example.net",
  "firstName": "John",
  "lastName": "Doe",
  "companyName": "Example Inc",
  "unibox_url": "https://app.beam.test/beam_ui/unibox/thread_test_123",
  "email_account": "campaign@beam.test",
  "email_subject": "Re: your invite: AI event in Munich",
  "email_html": "
John,

Can I reserve you a seat?
", "reply_subject": "Re: Test Campaign", "reply_text": "Thanks for reaching out. This looks relevant for our team.", "reply_text_snippet": "Thanks for reaching out. This looks relevant for our team.", "reply_html": "

Thanks for reaching out. This looks relevant for our team.

", "step": 2, "variant": 1, "is_first": true }

In the example above, the matched lead is still John Doe from Example Inc, but the reply arrived from a different sender address. That difference is expected for reply_received.

Example: lead_interested

{
  "timestamp": "2026-03-06T09:15:00Z",
  "event_type": "lead_interested",
  "lead_email": "test@example.com",
  "workspace": "workspace_123",
  "campaign_id": "test-campaign-1234",
  "campaign_name": "Test Campaign",
  "email": "test@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "companyName": "Example Inc",
  "unibox_url": "https://app.beam.test/beam_ui/unibox/thread_test_123",
  "reply_subject": "Re: Test Campaign",
  "reply_text": "Thanks for reaching out. This looks relevant for our team.",
  "reply_text_snippet": "Thanks for reaching out. This looks relevant for our team.",
  "reply_html": "

Thanks for reaching out. This looks relevant for our team.

", "step": 2, "variant": 1 }

Choosing Between Beam-Native And Instantly-Compatible Events

  • Choose Beam-native positive_reply if you are starting fresh with Beam and want notifications for interested conversations without receiving every non-positive reply.
  • Choose Instantly-compatible events if you are replacing existing Instantly webhook automations and want to minimize downstream changes.
Instantly-compatible support currently covers email_sent, email_bounced, reply_received, and the supported reply state events that map cleanly to Beam. The bounce payload stays intentionally narrow for Instantly migration compatibility and does not expose Beam-specific bounce_type or bounce_reason.
Booked Meetings & Connected Calendars

Connect a calendar source to count the meetings that Leads your workspace emailed go on to book. Beam checks each connected source every 15 minutes; it is not told about bookings as they happen.

Choose a Calendar Source

Open Settings → Integrations and review Calendars. One source is enough.

  • HubSpot meetings are included automatically while your HubSpot integration is active. They cover meetings from calendars synced to HubSpot, HubSpot meeting links and meetings logged by hand, so one connection covers every salesperson whose calendar syncs to HubSpot. Connecting HubSpot gives access to your HubSpot meetings, used only to attribute booked meetings to leads emailed. Other meetings are not stored.
  • Salesforce Events are read automatically once Salesforce is connected. There is no separate calendar setup.
  • Cal.com, Calendly and Google Calendar connect separately, as described below. If their bookings already reach HubSpot, you don't need to connect them as well.

Each connected calendar page shows the account, Last checked (or First check pending), and Needs attention with a reason when the last check failed. Any workspace member can select Sync now to request another check; the page shows Checking… for up to about a minute. Workspace Owners and Admins connect, reconnect and disconnect calendars. Disconnecting stops reading that calendar; bookings already recorded stay.

Cal.com

Open Settings → Integrations → Calendars → Cal.com. Create a key in Cal.com Settings > Developer > API keys, enter it under API key and select Connect. When Connect with Cal.com is offered, you can authorize access in Cal.com instead; Use an API key instead shows the key form. Use Replace key, or Reconnect for an authorized connection, to renew access for the same account. Disconnect first to connect a different account.

Beam reads bookings hosted by the connected Cal.com user, starting with bookings created on January 1, 2026. Connecting or replacing the key starts a check. Accepted, pending and unconfirmed bookings are scheduled. Canceled bookings are recorded as canceled, and a rejected booking already recorded becomes canceled. When a booking moves to a new time, the original becomes rescheduled.

Calendly

Open Settings → Integrations → Calendars → Calendly, select Connect with Calendly and authorize the Lightmeter app in your browser. One Calendly account connects per workspace; disconnect before changing accounts. Beam reads meetings hosted by that account, starting with meetings that start on or after January 1, 2026. Cancellations and reschedules stay current.

Google Calendar

Open Settings → Integrations → Calendars → Google Calendar and select Connect Google Calendar. Review the disclosure, allow calendar access in Google, then finish in Beam with the same account and workspace. Beam reads the connecting admin's primary calendar. Reconnect Google Calendar replaces the connected account.

Timed events created since January 1, 2026 qualify. All-day events, recurring events and special event types such as out-of-office are excluded. Confirmed and tentative events count as scheduled. A declined invitee, or a canceled or deleted event, is canceled. Moving an event updates its meeting time and keeps its booking date. Event titles, descriptions, locations and unmatched invitees are not stored.

Salesforce Events

Beam reads Salesforce Events created since January 1, 2026 and matches their Contact and Lead invitees like any other booking. Changing an Event's time keeps its booking date. Deleting an Event or removing an invitee cancels the recorded booking while Salesforce still shows that deletion. Salesforce Scheduler appointments count when they create calendar Events. Booking sync does not write to Salesforce. See Salesforce calendar bookings for the access the connected user needs.

Which Meetings Count

A meeting counts when an invitee is a Lead your workspace emailed before the booking. If the invitee wasn't emailed but works at the same company as a Lead you emailed, Beam links the meeting to the colleague and campaign with the most recent Lightmeter email or reply in the 30 days before booking. Company membership comes from your connected HubSpot, Close or Salesforce records. With no CRM connected, a shared corporate email domain is used instead; free-mail and personal domains never match. Your sending domains and team members' addresses never match. Neither do people at your own company, whose email domain comes from your workspace account email: a meeting with only your own colleagues is not counted, while a meeting with a Lead and a colleague counts for the Lead.

Each booking is linked to its Lead and campaign and, when the Lead's Positive conversation in that campaign began before the booking, to that conversation. A Lead can book without replying. When the same meeting appears in more than one source, it counts once in Booked meetings.

Booking Attribution and Assists

Lightmeter attributes a booking to outreach when all of these are true:

  • The booking falls within the 30-day attribution window after a Lightmeter campaign email or the person's human reply. A later human reply restarts the attribution window.
  • Your team had no two-way contact with the person or their company in the seven days before that email or reply.
  • The person did not respond to your team before replying to Lightmeter. A booking with no response at all is still attributed.

Two-way contact means a meeting, an inbound email outside a Lightmeter thread, an inbound SMS logged in Close, or a connected call. Beam reads this history from HubSpot and Close for every booking, and from Salesforce only for meetings booked as Salesforce Events. Outgoing emails, unanswered calls and notes do not count, and channels your CRM doesn't log can't be seen. When no CRM history applies to a booking, the contact checks pass. For Salesforce Events, when the Salesforce activity history is unavailable or ambiguous, the meeting's attribution stays unassessed.

An Assist is a meeting that passes the 30-day attribution window and seven-day quiet checks, but where the person's first response was to your team: your team converted them after a Lightmeter email. Assists are counted separately and are never also attributed.

A follow-up meeting is neither attributed nor an Assist: the same person already had an attributed or assisted, scheduled meeting that started before this one was booked. Canceled and rescheduled meetings don't make a later meeting a follow-up. If the earlier meeting is canceled or loses its attribution, Beam reassesses the later one.

Beam checks attribution when it records a booking, rechecks bookings made in the last three days, and rechecks older bookings when your connected CRMs change. Activity your CRM logs much later may not be reflected, and activity after the booking never changes its attribution.

Cancellations and Reschedules

A booking is scheduled, canceled or rescheduled. A rescheduled booking was replaced by a new time; the replacement keeps the original booking date and link, so the meeting counts once. Beam does not know whether a meeting took place.

Where You See Booked Meetings

Once a connected calendar has completed a check, Reports → Reply handling shows Booked meetings for the selected dates:

  • Booked meetings: attributed, scheduled bookings made in the selected dates.
  • N assists: assisted, scheduled bookings, shown when there are any.
  • Booked Positive conversations: distinct Positive conversations linked to those attributed bookings. A canceled or rescheduled booking, or a conversation later marked not Positive, does not count.
  • Canceled meetings: bookings made in the selected dates that were later canceled, regardless of attribution. Shown when there are any.
  • N meetings with attribution unassessed; excluded from Booked meetings and Assists.: scheduled Salesforce and Close bookings whose attribution has not been assessed.

All of these count by booking date, not by meeting date or Positive reply date.

API and MCP

List bookings with their attribution, Assist and reason through GET /api/v1/bookings in the Analytics API or the MCP tool workspace_bookings_list. The speed-to-lead report carries the same counts. Calendar status, Sync now and disconnect are in the settings API and the workspace_google_calendar_*, workspace_calendly_* and workspace_calcom_* MCP tools. Calendar sign-ins are completed in the browser, a Cal.com API key can also be saved through the settings API, and credentials are never returned.

Close CRM Integration

Connect Close to bring interested prospects into your sales workflow, keep email opt-outs aligned, and see how outbound leads progress to pipeline and revenue.

Connect Close

  1. In your Beam workspace, open Settings → Integrations → Close.
  2. Select Connect Close, choose the Close organization you want to use, and authorize Lightmeter.
  3. Choose the sync features you need, review their settings, and select Save Close Connection. Each feature remains off until you enable it.

Follow up on positive replies

Turn on Positive reply sync to send interested prospects to Close for sales follow-up. Beam matches the campaign recipient's email to an existing Close Contact. You can allow Beam to create a Lead and Contact when there is no exact match. Opportunity creation and updates are optional; choose a pipeline and status if your team uses them. Review the effect of your choices before enabling sync.

Keep email opt-outs aligned

Turn on Sync email suppression to import Close unsubscribes into your workspace email blocklist, send Lightmeter opt-outs to Close, or both. Review the import preview before blocking new addresses. This controls email outreach only; it does not stop phone calls or automatically resubscribe anyone.

Close does not make unsubscribe management available on every plan. Check your Close plan before enabling either suppression direction. Connecting successfully does not confirm that Close will allow unsubscribe imports or updates.

Measure pipeline and revenue

Open Revenue attribution in the Close integration settings. Choose the Opportunity stages that count as Qualified and Closed Won, what Opportunity amounts represent, and a reporting time zone. Opportunity values count whatever their Close value period. Then open Reports → Revenue to see how attributed opportunities progress by outreach month. See Revenue for how values are totalled.

Use Check Connection to verify access, Reconnect Close to renew authorization, or Disconnect to stop sync. See the full Close setup guide for field matching, test actions, and reporting details.

HubSpot CRM Integration

Connect HubSpot to bring positive conversations into your sales workflow, align email and calling blocks, and see which outreach months led to attributed Deals.

Connect HubSpot

  1. In your Beam workspace, open Settings → Integrations → HubSpot. A workspace Owner or Admin can manage the connection.
  2. Choose Authorize positive replies, Authorize two-way blocklist sync, or both. Select Connect HubSpot, authorize the intended account, and check its displayed account ID.
  3. Choose the fields and values for each selected feature, review the changes shown on the page, and select Save Connection. Saving does not start either sync. Turn on each feature separately when you are ready.

Follow up on positive replies

Choose a HubSpot Lead pipeline and any stages to skip. For a positive conversation, Beam uses the campaign recipient's exact email address to find an unambiguous Contact and eligible Lead, or creates missing records. It saves the chronological email thread as a HubSpot Email activity associated with those records. You can optionally set Contact source and status, a new Lead stage or label, and a custom workflow trigger. Review those choices before saving: changing an existing Contact's traffic source can change attribution and trigger HubSpot workflows.

For a controlled check, choose Send Test Reply to HubSpot and review the reply, recipient, and record changes before confirming. Then select Turn On Positive Reply Sync to send later positive conversations automatically. The test is recommended but optional; turning on positive reply sync does not turn on blocklist sync.

Keep email and calling blocks aligned

For two-way blocklist sync, choose the HubSpot email subscription types and a writable custom Contact field for calling blocks. Beam can send supported Lightmeter opt-outs and calling blocks to HubSpot and import supported HubSpot blocks into your workspace. This sync is additive: removing a block in one system does not automatically remove an existing block in the other.

Before the first import, select Preview initial import and review the counts, then Approve initial import. You can also run the optional Run blocklist sync test with a temporary Contact. Select Turn on blocklist sync only after approving the preview. Repeat the preview and approval if you later turn this sync off and back on.

Measure attributed Deals

Open Revenue attribution on the HubSpot integration page and select Set Up Revenue Report. Choose which Deal stages count as Qualified and Closed Won, state what your HubSpot Deal Amount represents, and select Save Revenue Settings. A monthly target is optional. The Reports → Revenue view then groups attributed Deals and later outcomes by the month of their originating positive conversation. It uses positive conversations already in Lightmeter, even when automatic positive reply sync is off. Revenue attribution is not a sales forecast.

Include CRM email activity

Use Email observation on the HubSpot integration page to include verified CRM email activity in the Unibox and Reply handling. To check that leads have received timely replies, CRM emails may be accessed, and stored for fast loading of lead engagement history. While observation is paused, the panel says Email sync is off. Your opt-in is kept. Select Remove email observation opt-in to withdraw it.

If emails your team sends from a CRM haven't synced for several hours, the Unibox shows a notice with a Check HubSpot connection or Check Close connection link. Replies to your campaigns aren't affected.

Use Check your HubSpot connection to verify access, Configure HubSpot fields to change authorized mappings, or Reconnect HubSpot if permissions need renewal. If you need help choosing fields or checking a test result, contact Lightmeter support before turning on a sync.

Salesforce CRM Integration

Connect Salesforce to send positive conversations to the rep responsible for follow-up, keep email opt-outs and calling blocks aligned, see which outreach months led to attributed Opportunities, and count meetings booked through Salesforce Events.

Connect Salesforce

  1. A Salesforce administrator installs the Lightmeter app in your Salesforce organization first. See Administrator setup.
  2. A workspace Owner or Admin opens Settings → Integrations → Salesforce and selects Connect Salesforce.
  3. Sign in as a Salesforce user with a standard license and the permissions for the features you use, then select Allow. Check the organization name and select Confirm connection.

Follow up on positive replies

Under Positive reply sync, choose Select Positive reply sync, use Configure Salesforce fields to choose the fields to set, then Save settings and Check connection. Beam saves each Positive conversation to the Contact or unconverted Lead with the exact email address. A completed Task logs the email thread, and a separate open Task, Lightmeter: positive reply from {name}, goes to the Contact's Account owner, or to the record owner when there is no Account. Beam never reassigns records, and duplicate matches wait for review. Select Create a Lead when no Contact or Lead matches to create missing Leads; this needs a Company mapping.

Send a test reply to Salesforce is optional: it applies your saved field mappings, writes the Tasks and, when Create a Lead when no Contact or Lead matches is selected, can create a Lead, but sends no email. Select Turn on Positive reply sync when you are ready. Without a test, the status shows Untested.

Keep opt-outs and calling blocks aligned

Under Blocklist sync, choose Select Blocklist sync and a Sync direction: Salesforce to Beam, Beam to Salesforce or Two-way. Save settings, select Preview Blocklist import and review the counts, then Approve Blocklist import and Activate Blocklist sync. Each activation, including after a pause, needs a freshly approved preview.

Imports add the email address of any Contact or unconverted Lead marked Email Opt Out or Do Not Call to your workspace blocklist. Exports mark reply opt-outs as Email Opt Out and Do Not Call on the single Contact or unconverted Lead with that exact email. No records are created, and blocks are never cleared automatically. Pause Blocklist sync before changing its direction. If some blocks need attention, correct access or duplicate matches in Salesforce, then select Retry Blocklist sync.

Measure pipeline and revenue

Open Revenue attribution on the Salesforce integration page and select Set Up Revenue Report. Choose the Opportunity stages that count as Qualified and Closed Won, what Opportunity Amount represents, and a reporting time zone, then select Save Revenue Settings. A monthly target is optional. Reports → Revenue then groups attributed Opportunities by outreach month. Each Opportunity Amount counts once, in its own currency. Revenue attribution reads Salesforce Opportunities without changing them.

Count meetings booked in Salesforce

Once Salesforce is connected, Beam also reads Salesforce Events as booked meetings. See Booked Meetings & Connected Calendars.

Use Reconnect Salesforce if access expires or is revoked. Disconnect stops Positive reply sync and Blocklist sync, and Revenue attribution from Salesforce is unavailable until you reconnect. Salesforce records stay unchanged. See the Salesforce setup guide for administrator permissions, field rules and API details.

Blocklists (Suppression Lists)

Use Settings → Blocklists to set which email addresses and domains should never receive emails.

When Beam processes an explicit unsubscribe reply successfully, it keeps that lead unsubscribed in the current campaign and also adds the recipient email to the workspace email blocklist with source Auto Unsubscribe.

What You Can Do

  • Manage two independent lists: Email Address Blocklist and Domain Blocklist.
  • Add values manually, import values from CSV, remove selected values, and export the active list to CSV.
  • Filter and sort values by source and block time.
  • Review blocklist change history in Settings → Activity.

Send Behavior

  • Blocklists are scoped to your workspace.
  • When a recipient matches an active blocklist value, Beam skips the send for that lead.
  • Skipped blocklist sends are tracked in campaign analytics as blocklisted outcomes.
  • Remove an Auto Unsubscribe entry from Settings → Blocklists if you intentionally want to contact that recipient again.

Matching Rules

  • Email addresses must match exactly. Upper/lowercase differences are ignored.
  • Domain names must match exactly. Upper/lowercase differences and Unicode variants are handled automatically.
  • Subdomains must each be specified separately (example.com does not block sd.example.com).
  • Unicode/IDN domains are normalized safely before matching.

CSV Import Rules

  • Beam uses the first non-empty column in each row as the value.
  • The first row is treated as a header when it looks like Value, Email, or Domain.
  • Duplicate values inside the same CSV file are ignored.
  • Preview shows valid, invalid, duplicate, and already-existing values before apply.
Lead Updates Across Campaigns

A lead's name, company, email, LinkedIn details, and custom attributes are shared within your workspace. The effect of a correction depends on which campaigns include that lead.

Which Campaigns Need Attention?

  • Only the campaign you are editing includes the lead: review and apply the import normally. No extra confirmation is required for other campaigns.
  • Another unfinished campaign includes the lead: the import review lists the affected campaigns by name and status, with lead counts and current and imported values. Choose whether to use the imported values or keep the existing values for the leads shared with those unfinished campaigns. This includes campaigns that are paused or have not started.
  • Only finished campaigns also include the lead: the import review names those campaigns. Their displayed lead details update, but sending does not restart and no extra confirmation is required. Review the corrected details before deliberately reactivating one of them.

This review is available when you upload a CSV to create an audience or add leads to a campaign. Adding a lead to another campaign does not create a separate copy of their attributes. Keeping existing values for a shared lead keeps those values in the campaign you are preparing too. Missing attributes can still be filled from the import.

Reviewing Large Imports

Make one choice for all changed leads shared with other unfinished campaigns. Search for a lead or value, select a campaign to narrow the comparison, or download the changes as a CSV. The table shows 50 rows at a time. Your choice applies to the full stated group, including leads outside the current page or search.

A lead can belong to several campaigns, so per-campaign counts can overlap. Campaign membership alone does not mean that the lead is due another message.

Corrections confined to the campaign you are preparing, or shared only with finished campaigns, still use the imported values. Blank imported cells do not erase stored values. If the affected details or campaign memberships change before you apply, review the refreshed comparison first.

Example

The same lead belongs to Campaign A and Campaign B. You correct their company name while preparing Campaign A. Campaign B now uses that corrected company name too, including when you generate a new message preview for that lead.

Messages already prepared for sending can still contain the previous values. A newly generated preview uses the current lead attributes.

Lead Deduplication

Beam lets you decide how broadly duplicate leads should be filtered before new leads are added to a campaign.

The setting lives in Edit Campaign → Leads → Add Leads to Campaign and applies to both Existing Audience imports and Upload CSV top-ups.

What It Does

  • Beam always skips leads that are already in the same campaign.
  • The deduplication policy controls whether Beam should also skip leads found elsewhere in your workspace.
  • Preview shows how many leads are already in the campaign, how many are skipped by deduplication, and how many remain importable.

Available Policies

Policy What Beam skips
None Only leads already present in the same campaign.
Active and paused campaigns Leads with active membership (pending, started, or paused) in other active or paused campaigns, in addition to same-campaign duplicates.
All campaigns Leads already present in any campaign, including completed campaigns.
All audiences Leads already present in any audience, even if that audience is not attached to a campaign.

What You Will See In The UI

  • Already in campaign counts same-campaign duplicates.
  • Skipped by dedupe policy counts leads excluded by the selected policy outside the current campaign.
  • Importable after dedupe is the number Beam can still add before blocklist/send-time checks are considered.
  • Blocklisted leads can still be imported; Beam blocks them later at send time.
Campaigns created through the public API can use the same setting via lead_dedupe_scope.
CSV Lead Uploads

Use Edit Campaign → Leads → Add Leads to Campaign → Upload CSV when you want to add more leads to an existing campaign from a spreadsheet.

Beam imports every valid unique lead it can and reports rows that could not be added. Duplicate rows do not block the whole upload.

For corrections to existing leads, see which campaigns need attention, including when no other campaign needs review.

How Beam Counts Uploaded Rows

  • A row needs at least one usable email address before Beam can add it to a campaign.
  • If multiple CSV rows point to the same lead, Beam keeps the first matching row and reports later matching rows as duplicate CSV rows.
  • Rows for leads already in the campaign are counted as Already in campaign; Beam does not create a second campaign entry for the same lead.
  • The selected lead deduplication policy can also skip leads that already exist elsewhere in your workspace.
  • The campaign lead total counts distinct leads added to the campaign, not the raw number of rows in the uploaded CSV file.

What Happens After Upload

  • Valid unique leads that pass the selected deduplication policy are added to the campaign.
  • The result accounts for every CSV row and shows how many were imported, skipped, or failed. Rows not imported include the original row number, lead identity, and reason.
  • Leads already present in the campaign or excluded by the deduplication policy are identified in the rows not imported. A skipped campaign membership can still have its lead details updated by the import.
  • CSV row errors do not prevent other eligible leads from being added. When a row matches different existing people, correct that row's identities; choosing to overwrite values does not merge people.
  • Search the rows not imported and download their report for the reasons, or download their source rows for correction. Correct and upload only the rows that need changes. Successfully imported rows are already saved.

Re-uploading A Lead You Removed From This Campaign

  • If you manually removed a lead from this campaign before sending began, uploading that same lead back into the same campaign returns the lead to Pending.
  • This also applies when you remove affected leads from the launch-readiness repair flow after reviewing missing template values.
  • Re-uploading does not reopen leads that already ended for another reason, such as a reply, unsubscribe, bounce, blocklist, campaign completion, or a manual removal after sending had already started.

If The Campaign Total Looks Lower Than The CSV Row Count

  • Check the upload result for duplicate CSV rows, rows without a usable email address, leads already in the campaign, and dedupe-policy skips.
  • Use Edit Campaign → Analytics to review actual sends after the leads are added. Analytics reflects delivered campaign activity, not the original raw CSV row count.
CSV upload accounting and campaign analytics answer different questions. The upload result reports how many leads were added and lists CSV row errors; analytics shows campaign sending activity.
Manual Lead Removal

Use Edit Campaign → Leads to remove an individual lead from a live campaign when they should stop receiving future emails from that campaign.

Beam shows these leads as Removed on the Leads tab. Removed means that no further messages will be sent to the lead in this campaign. It is not the same as Unsubscribed or Do Not Contact.

When To Use It

  • The lead progressed elsewhere and should stop receiving this campaign.
  • You discovered the lead is a duplicate in an already-running campaign.
  • The contact is wrong or invalid for this campaign.
  • You have an operational reason to stop this lead without suppressing them globally.

What Happens

  • Beam stops future emails for that lead in that campaign only.
  • The lead remains visible in the campaign lead list with status Removed.
  • You must choose a removal reason. If you choose other, add a short note.
  • You can optionally override the attributed step and variant if the default attribution is misleading.

Re-uploading Corrected Leads

  • If a lead was removed manually while still waiting in the campaign queue, uploading that corrected lead back into the same campaign returns the lead to Pending.
  • The launch-readiness workflow for missing template values uses this same manual removal behavior when you choose to remove affected leads.
  • If the lead had already started sending before removal, re-upload does not resume that sequence automatically.

Removal Reasons

Reason Use it when
Progressed The lead moved forward outside Beam and should stop receiving this campaign.
Meeting Booked The lead booked a meeting or equivalent CTA outcome.
Not Interested You know the lead is not interested in this outreach, but they are not being globally unsubscribed.
Wrong Contact The lead is the wrong person or wrong target for this campaign.
Invalid Contact The address or contact data is unusable, stale, or otherwise invalid.
Duplicate The lead is duplicated in the current campaign and one record should be removed.
Other The lead should stop receiving the campaign for another reason. Add a short note so the reason is clear later.
Explicit unsubscribe replies add the recipient to the workspace email blocklist. Use Remove from campaign when you only want to stop one lead in one campaign without creating workspace-wide suppression.
Sequences & Variant Management

Step and Variant Limits

  • Up to 10 steps per campaign.
  • Up to 6 variants per step (A-F).

Delay and Threading

  • Delay is the wait after the previous step. When a sending schedule is set, it counts configured sending days, so days outside that schedule do not advance the delay. Without a valid sending schedule, it counts calendar days.
  • From Step 2 onward, each variant can be configured as threaded to send as a reply in the same email thread.

Variant Controls

  • Preview & Test opens the exact variant content for review.
  • Pause / Unpause Variant is available per variant row.
  • Delete Variant is disabled when the step has only one variant.

Deleting Sequence Steps

  • Beam keeps step numbers contiguous after a delete. If you remove Step 4 from a five-step campaign, the remaining sequence becomes Steps 1-4.
  • Step 1 cannot be deleted from an existing campaign. Edit the first message instead of removing it.
  • Middle-step deletion is only available while Beam can safely compact the remaining steps. In practice, this means the campaign must still allow step reordering.
  • If Beam cannot safely renumber later steps, it disables middle-step deletion instead of leaving the campaign in a partially updated state.
  • Deleting the final step is still allowed when it does not require renumbering earlier steps.

When Middle-Step Deletion Is Available

  • Middle-step deletion is intended for draft campaigns before sending or lead progression has started.
  • When available, Beam deletes the selected step and automatically renumbers the later steps in the same save flow.
  • If a delete action is disabled, edit the existing step, delete only the final step, or duplicate the campaign and restructure the sequence before activation.

Save Behavior

  • Autosave is on and shows explicit save state (Saving, Saved, Failed, Unsaved).
  • You can still use Save All Sequences for a manual checkpoint.
Template Variables & Fallbacks

Use template variables in campaign subjects, campaign bodies, reply snippets, and Unibox replies to personalize messages with lead and sender data.

Common Variables

  • {{firstName}}, {{lastName}}, {{companyName}}, and {{email}} use standard lead profile fields.
  • {{senderFirstName}} and {{senderLastName}} use the sending mailbox identity.
  • {{attr.key}} uses a custom lead attribute named key. For example, {{attr.aiIcebreaker}} uses the aiIcebreaker attribute.

Fallback Text for Missing Values

  • Add fallback text after a pipe so the message still reads naturally when a value is blank: {{companyName | your company}}.
  • Spaces before or after the pipe are supported and behave the same way: {{ companyName | your company }} is equivalent to {{companyName|your company}}.
  • Fallbacks work for custom attributes too: {{attr.aiIcebreaker|quick note}} and {{ attr.aiIcebreaker | quick note }} both render quick note when that lead has no aiIcebreaker value.
  • You can chain candidates from left to right. {{firstName|companyName|there}} uses first name when present, then company name when present, then there.
  • Spaces that are part of fallback text are preserved only when that fallback is used. For normal greetings, prefer Hi {{firstName|there}} so spacing is correct whether Beam uses the lead value or the fallback. Use a fallback such as {{firstName| there}} only when the fallback itself should begin with a space.
  • A literal pipe character inside fallback text is not supported. Avoid fallback text such as {{firstName|ACME | Partners}} because Beam treats each pipe as another fallback candidate.

Random Text Variations

  • Use {{RANDOM|Hello|Hi|Hey}} to let Beam choose one option when rendering the message.
  • Spaces around random-option pipes are ignored too. {{ RANDOM | Hello | Hi }} is equivalent to {{RANDOM|Hello|Hi}}.
  • Random options are trimmed at the edges, so keep sentence spacing outside the RANDOM block when each option should share the same surrounding spaces.

Literal Braces

  • Escape the opening braces when you want to include literal template syntax in an email: \{{example}} renders as {{example}}.
  • Unescaped template-like text must resolve safely. If Beam would leave {{example}} in the rendered email, readiness checks and live sending block it before the message is sent.

Campaigns and Unibox Replies

  • Campaign editors keep variables as template text while you write because each campaign can send to many different leads. Use campaign preview and readiness checks to review rendered examples before activation.
  • Unibox replies are one-to-one. Variables inserted directly or through snippets resolve to the selected thread's lead and sender values in the reply draft.
  • Resolved Unibox values are highlighted in the editor so you can see which words were personalized. The preview shows the final message without editor-only highlighting.
  • If a Unibox variable is missing or empty and has no safe fallback, the draft shows a visible missing-value marker and sending stays blocked until you fix the value or edit the text.

Missing Variable Values

  • A variable value is the actual lead or sender information used to replace a variable such as {{firstName}} or {{senderFirstName}} before a message is sent.
  • If a required value is unavailable and there is no fallback text, Unibox shows a missing-value marker and blocks sending so the message does not go out with a blank or unresolved variable.
  • To fix a missing value, update the relevant lead or sender information, choose a different variable, add suitable fallback text where reusable content is edited, or replace the marker directly in the draft for that one reply.

Activation Readiness Behavior

  • Required lead and sender variables without values or fallback text block activation.
  • Custom attributes without values also block activation when they would render as raw template syntax. Add a fallback, fill the lead attribute, escape the braces if the literal text is intentional, or remove affected leads from the campaign.
  • Use an explicit empty fallback such as {{attr.aiIcebreaker|}} only when a blank value is acceptable. Beam warns about the affected leads but does not block activation.
  • Adding non-empty fallback text removes the missing-value warning for that variable because Beam has safe text to render.
Lead Send Order

Choose which eligible leads should receive a campaign's first email before other eligible leads.

Configure a Rule

  1. After importing leads, open Edit Campaign → Leads → Settings → Lead send order.
  2. Under Order by, select a supported date or numeric lead field.
  3. Choose whether higher or lower numbers, or newer or older dates, should be sent first.
  4. Under When this field has no ordering value, choose whether those leads should be sent first or last.
  5. Select Apply Rule. The Applied status confirms that the displayed rule is saved and is being used.

What the Rule Changes

  • The rule reorders eligible leads that have not started Step 1. It does not make an ineligible lead eligible or change whether a lead is sendable.
  • Follow-up emails that are due are always sent before new Step 1 emails.
  • Once a lead has started, the rule does not change the order of that lead's follow-up emails.
  • Editing a lead's selected field value can change that lead's position while the campaign is active, until the lead starts Step 1.

Leads Without an Ordering Value for the Selected Field

  • A lead without an ordering value for the selected field can still be eligible to send. The first-or-last choice only determines where that lead is placed relative to other eligible Step 1 leads.
  • Blank, absent, or invalidly formatted values all count as having no ordering value.
  • Having no ordering value does not mean that required lead data or an email address is missing.
  • Value coverage shows how many currently eligible Step 1 leads have a usable ordering value for the selected field and how many do not.

Understand the Saved State

  • No rule applied means Step 1 leads use the normal send selection order.
  • Not applied means a rule has been selected but has not been saved.
  • Applied means the displayed rule is saved and is being used.
  • Unsaved changes means a saved rule is still being used while different selections are being edited. Select Save Changes to replace it. Select Discard Changes to restore the applied rule.
  • Applied field unavailable means a saved custom field or its saved value type is no longer available from the campaign's currently eligible leads. The saved rule remains active until you select and save an available field or remove it.
  • Remove Rule removes the saved rule and returns the campaign to its normal Step 1 send selection order.
Sending Cadence & Delay

Spread campaign sending through your scheduled hours while mailbox limits and cooldowns continue to apply. A late launch or pause doesn't accumulate extra catch-up allowance.

How Beam Decides Whether A Campaign Can Send Right Now

  1. Beam checks whether the campaign is allowed to run right now: active status, completion deadline, and schedule window.
  2. Beam checks whether a lead is actually due for its next step.
  3. Beam checks which mailbox that lead is allowed to use.
  4. Beam checks whether that mailbox is currently eligible to send, including cooldowns and daily limits.
  5. Beam only sends when both the lead and a mailbox are ready in the same processing cycle.

Automatic Delay Between Emails

  • Per mailbox cooldown: Beam enforces a baseline pause between sends from the same mailbox.
  • Steady pace: each mailbox's applicable capacity determines its spacing across the full sending window. Remaining hours after a late start don't shorten that spacing.
  • Staggered opportunities: mailbox opportunities are spread when sending starts or resumes. Existing safety cooldown variation still applies.

Starting Or Resuming Partway Through The Day

A late start leaves fewer sending opportunities in that day's window, so fewer emails may be planned for launch day. Beam keeps the spacing based on the full window when the campaign starts, resumes after a pause, or waits for leads to become sendable. Missed opportunities do not build up into a catch-up burst. Follow-up emails use the same pacing and keep their sequence delays.

Mailbox capacity also depends on sends accepted during the previous 24 hours and sends still waiting for confirmation. That capacity returns as accepted sends become 24 hours old; it does not reset at midnight. A new sending day does not guarantee that every mailbox has its full allowance available.

Check The Estimated Completion

  1. Open the campaign from Campaigns and select Schedule.
  2. Find Projected send timeline and review Estimated completion. When pending leads can’t send, a short note shows the unsendable and awaiting-email-check counts excluded from the projection. Select the counts to open the campaign’s Leads tab. Started leads are not included in these counts.
  3. Compare the estimate with Stop sending at, your completion deadline. If completion extends beyond the deadline, review the available mailbox capacity, sending days and hours, and remaining sequence delays before launch.

The estimate accounts for sending pace, available mailbox capacity, remaining steps, follow-up waits and sending windows, including a partially elapsed launch day. Provider confirmation delays, interruptions or changed settings can move completion later. The deadline remains a sending cut-off; it does not make the campaign send faster to finish on time.

Time-Sensitive Campaigns

Ask Lightmeter staff to review mailbox assignments when a small campaign needs to finish sooner. Staff can use the existing Urgent priority in Auto assign mailboxes to include all otherwise suitable, unused mailbox capacity. Auto assign mailboxes remains a staff control. Workspace users can use the campaign's Infra tab to add eligible mailboxes and deliberately share infrastructure.

A broader sending pool can complete a small campaign sooner while each mailbox keeps its pacing, health and volume limits. Started leads remain linked to their current mailboxes for follow-ups. Urgent priority leaves less unused capacity for other campaigns until this campaign completes, and does not guarantee completion before a deadline.

Batching Rules

  • Beam evaluates active campaigns continuously in recurring processing cycles.
  • Each cycle processes a bounded subset of eligible leads instead of flushing everything at once.
  • Started leads keep their sender mailbox for follow-up consistency.
  • If multiple mailboxes are assigned, Beam distributes sends across currently available mailboxes instead of concentrating everything on one sender.
  • If one mailbox is busy with started leads but another mailbox is idle, Beam can still use the idle mailbox for other eligible leads in the same cycle.
  • If multiple campaigns share the same mailbox, that mailbox's overall daily capacity is shared rather than reserved per campaign.
  • A campaign can send multiple emails in one cycle, but one mailbox cannot send again until its cooldown is complete.

How Mailbox Assignment Works

  • Started leads: Beam keeps follow-ups on the same mailbox whenever possible.
  • New Step 1 leads: Beam can use any active eligible mailbox assigned to the campaign.
  • Mailbox removed from the new-lead pool: Beam can still let already-started leads finish on that mailbox if it is still structurally valid and has send capacity.
  • No reserved share: when multiple campaigns share a mailbox, Beam uses the mailbox's remaining daily capacity as it becomes available rather than reserving a fixed slice for each campaign.

Other Timing Controls You Configure

  • Step Delay (days): each sequence step waits the configured number of days before it is eligible to send.
  • Schedule Window: sends only run on selected days and times in the campaign timezone, or in each lead's timezone when use_lead_timezone is enabled and the lead has a valid timezone.
  • Campaign Limit: Beam enforces the campaign-wide max/day using the campaign timezone for the daily reset.
  • Mailbox-wide Capacity: if a mailbox-wide daily capacity is configured for a mailbox, Beam enforces that shared cap across all campaigns using the mailbox.
  • Missing Mailbox-wide Capacity: if a mailbox does not have a mailbox-wide daily capacity configured yet, Beam shows Not configured and does not apply a mailbox-wide daily cap until one is set.
  • No Reserved Mailbox Share: shared mailbox capacity is not automatically split or reserved per campaign.

What Stops Future Sends For A Lead

  • The first qualifying human reply stops future campaign sends for that lead in that campaign.
  • An explicit unsubscribe reply also stops future sends immediately and adds the recipient to the workspace blocklist.
  • Remove from campaign stops future sends only in that campaign and does not create workspace-wide suppression.
  • When bounce protection blocks an email before it is sent, the lead ends as bounced at that step and receives no further campaign emails. The Unibox shows Sending blocked before delivery. Campaign analytics count the lead as bounced and blocked. This is different from the Blocklisted lead status, which means your workspace blocklist skipped the send.
  • Automated non-bounce replies such as out-of-office messages are tracked separately and do not by themselves mark the lead as replied.

Common Reasons A Campaign Waits Instead Of Sending Immediately

Reason What it means
Outside schedule window The campaign is active, but the current time is outside the allowed send days or hours.
Campaign daily max reached The campaign has already used its allowed sends for the current campaign day.
No lead is due yet Sequence delays or lead-local schedule rules mean no lead is ready for the next step yet.
Mailbox cooling down The mailbox has sent recently and must wait before it can send again.
Mailbox limit reached The mailbox-wide daily capacity has been exhausted for that mailbox.
Lead already stopped A qualifying reply, unsubscribe, manual removal, or completion deadline has already stopped future sends for that lead or campaign.
Mail maintenance A banner says “Sending and inbox access are temporarily unavailable during mail maintenance. Other features remain available.” Campaign sends wait until maintenance ends, and campaigns keep their progress. Test emails and Unibox replies can't be sent until then; Unibox reply drafts are kept.
If no mailbox is currently eligible due to cooldown or limits, remaining leads wait for the next processing cycle. This can happen even when a campaign still has remaining campaign limit, because a started lead may need a specific mailbox, or a shared mailbox may already have exhausted its overall daily capacity. If mailbox-wide capacity is not configured yet, Beam does not enforce that mailbox-wide cap, but campaign-level limits and cooldowns still apply.
Completion Deadlines

Use Completion Deadline when a campaign must stop sending after a specific cut-off.

How Beam Applies The Deadline

  • The deadline is treated as an exact cut-off time.
  • In the Beam UI, the deadline is edited in the campaign timezone shown in the schedule settings.
  • When the deadline has elapsed, Beam stops any remaining sends for that campaign immediately.

What You Will See

  • An active campaign whose deadline passes is moved to Paused with reason Deadline reached.
  • The campaign list shows a Deadline passed badge so the stop is visible without opening logs.
  • Beam does not mark the campaign completed just because the deadline passed. Leads may still remain untouched.

What Happens To In-Flight Sends

  • Beam re-checks the deadline immediately before each SMTP handoff.
  • If the deadline passes during a processing cycle, any sends that have not yet been handed to SMTP are blocked.
  • Only messages that were already accepted for delivery before the deadline check can still leave the system.

How To Continue After A Deadline

  • Extend the deadline or clear it in the campaign settings.
  • Then resume the campaign manually.
  • If the deadline is still in the past, Beam will block resume until it is moved forward or removed.
Shared Campaign Infrastructure

Shared infrastructure lets campaigns in your workspace use the same sending domains and eligible mailboxes. All workspace users can choose sharing in the campaign controls, through the public API, or through MCP.

Understand the Risks

Shared reputation means email services judge mail sent from the same domain across campaigns. Spam complaints from one campaign can make emails from the others more likely to land in spam. This risk remains even when campaigns use different mailboxes on that domain.

Sharing a mailbox also shares its send limits, cooldown and pacing. Campaigns sending at the same time may send more slowly, including the original campaign. Sharing does not add mailbox capacity.

Choose Sharing Deliberately

  • Duplicate campaign: sharing starts off. Select Share infrastructure with [campaign name] to reuse eligible source mailboxes and their routing.
  • Move selected leads to campaign: sharing starts off for both New cloned campaign and New blank campaign. Create follow-up campaign offers the same choice. Moving to an existing campaign does not change its infrastructure.
  • Edit Campaign → Infra: select Use infrastructure already assigned to other campaigns when adding mailboxes. Review the named campaigns and visible warning before applying the selection.

Leaving sharing off when creating one of these campaigns does not copy the source's infrastructure. Choosing sharing does not launch or resume either campaign.

Concurrent or Sequential Sending

Shared campaigns can send at the same time. Beam does not wait for one campaign to finish before starting another. To run them sequentially, leave a new campaign as a draft, or pause one that has already launched. Manually launch or resume it after the earlier campaign finishes. Sequential sending still shares the domain's reputation.

Removing Mailboxes From Campaigns

Changing the mailbox pool on an active campaign can affect any leads that already started the sequence. Switching sender identity mid-campaign can hurt deliverability and thread continuity, so Beam now makes that impact explicit before the change is applied.

Pool And Continuity Mailboxes

The campaign mailbox screen shows all mailboxes still connected to the campaign. The Use column explains why each mailbox is present:

  • Pool: the campaign can use this mailbox for future leads and future sends that do not already have a fixed sender.
  • Continuity: the mailbox is no longer in the sending pool, but started leads are still linked to it so their sequence can continue from the same mailbox.

Continuity mailboxes are not used for new leads. They remain visible so you can see how many started leads are still attached, how many are ready now, and whether those started leads should keep their current sender, be reassigned, or be paused.

When Beam Shows A Warning

  • If you remove a Pool mailbox that still has started leads associated with it, Beam opens a confirmation step instead of silently applying the change.
  • The warning shows the removed mailbox addresses, how many started leads are affected, and how many are ready to send now.

Resolution Options

  • Keep started leads on current mailboxes; future leads stop using these mailboxes: safe default. The mailbox leaves the sending pool, but started leads keep using their current mailbox. The mailbox then appears as Continuity until those started leads finish or are otherwise resolved.
  • Reassign started leads to replacement mailboxes: move affected started leads to a replacement mailbox. Future sends for those started leads come from the replacement sender.
  • Pause affected started leads: pause affected started leads and fully detach the removed mailbox from that campaign.

Resolving Continuity Mailboxes Later

  • Select one or more Continuity mailboxes and choose Reassign selected started leads to move their started leads to replacement mailboxes.
  • Use Auto-match replacements to pre-fill likely replacements based on similar mailbox names, then review the choices before applying.
  • If those started leads should not continue sending, choose the pause option instead.

What You Can See After The Change

  • The campaign mailbox screen marks Continuity mailboxes separately from Pool mailboxes.
  • Each retained mailbox shows its address, active started lead count, ready-to-send count, and a shortcut to view the affected leads.
  • The affected-leads shortcut opens the existing campaign lead list with a sender-mailbox filter applied. Beam does not add a separate mailbox-history page in this release.
Beam preserves sender consistency for started leads here, but this does not create a user-visible reserved share of mailbox daily capacity. Mailbox-wide capacity is still shared across campaigns.
Campaign Pause, End, Fast Forward, Reactivate, Reopen & Resume

Campaign lifecycle controls let you temporarily pause a campaign, deliberately End future campaign work, Fast Forward a nearly finished campaign, reopen an ended campaign, or reactivate a completed campaign into paused review. Draft campaigns are submitted for review instead of being activated directly.

Find Campaigns By Lifecycle

  • Unfinished includes Draft, Submitted, Sending, Paused, and Ending campaigns.
  • Use the Sending status filter for the exact subset of Unfinished campaigns that may send when schedules, limits, and eligible leads allow.
  • Finished includes naturally Completed campaigns and deliberately Ended campaigns.
  • All includes every supported nondeleted campaign state.
  • Pause is available on active campaigns and stops new emails from being scheduled and sent.
  • End is available on active or paused campaigns. The campaign shows Ending while in-flight work drains, then Ended when the stop is complete.
  • Fast Forward closes a nearly complete campaign after one final controlled send pass. The detailed behavior and completion definition are explained below.
  • Ending and Ended campaigns accept no future sends or new lead additions. When End finishes, unfinished leads are held as Paused for reviewed recovery; completed lead results, history, replies, campaign settings, and campaign data remain available.
  • Reopen returns an Ended campaign to Paused review without changing lead states, mailbox assignments, history, replies, or results. Reopen never resumes sending.
  • Reactivate campaign returns a naturally Completed campaign to Paused review without changing existing lead states, mailbox assignments, history, replies, settings, analytics, or results. Reactivate the campaign before adding new leads. Reactivation never resumes sending.
  • A sequence extension may separately reopen eligible completed leads. That campaign also moves to Paused review and does not resume automatically.
  • When paused-lead recovery is available, review the complete lead and mailbox-continuity plan before applying it. Sending campaigns keep sending other eligible leads and remain Sending after recovery. Paused campaigns remain paused until the separate Resume action succeeds. Leads awaiting email verification wait individually and do not block Resume; unsendable leads remain excluded.
  • If mailbox-change recovery will be handled later, explicitly defer the current obligation with a reason. Deferral covers only those affected paused leads; unrelated paused leads can still require review before Resume.
  • Resume is a separate authenticated workspace action. It returns a paused campaign to Sending only after campaign readiness checks pass.

Using Fast Forward

Fast Forward becomes available while sending is enabled and the campaign has reached 95% campaign completion. Completion is the percentage of leads counted toward completion that will receive no more campaign messages, including bounces. It does not mean that every sequence step was sent or delivered.

  • Before the campaign reaches 95%, the Fast Forward control remains faintly visible and its tooltip shows the campaign's current completion percentage.
  • After confirmation, Fast Forward may send at most one next queued message to each eligible lead. It still applies the normal sending and safety checks, but it does not wait for the configured delay between sequence steps.
  • After that final pass, remaining leads and the campaign are completed. Fast Forward cannot be undone.
  • Fast Forward is different from End: End stops future campaign work and creates an Ended campaign that can be reopened into Paused review; Fast Forward completes the campaign instead.

Operational Timing

Lightmeter processes sends in batches. In rare cases, a small number of in-flight emails may complete just after Pause is clicked. End shows the intermediate Ending state until already-claimed work finishes.

  • The exact number depends on how many sends are already in progress at the moment you pause.
  • New work is blocked immediately after pause takes effect.
  • Do not add leads or expect future sends after End is accepted.
Variant Pause & Unpause

Variant pause/unpause controls only one variant in one step.

Exact Scope

  • Pause applies to one specific variant in one specific step.
  • It does not pause the whole campaign and does not pause same-letter variants in other steps.

What Happens to Lead Flow

  • If a step still has at least one active variant, leads continue through those active variants.
  • If all variants in a step are paused, leads wait at that step until a variant is unpaused.
  • Reassignment happens at send time, so you do not need to bulk-move leads manually.

Where You Can Take Action

  • Sequences tab: full variant editing and pause/unpause controls with confirmation copy explaining lead-flow impact.
  • Analytics tab: quick action buttons for pause/unpause/delete at the variant row level.

Safety Guards

  • Analytics quick actions prevent pausing or deleting the last active variant in a step.
  • Deleting a variant is blocked when it would leave the step without a valid active path.

Unpause requires explicit confirmation and includes an experiment-validity warning.

Historical analytics for a variant remain visible even if that variant is currently paused.

Edit Campaign Analytics

The Analytics tab is optimized for operational decisions: you can inspect performance and take action in the same table.

Campaign Summary

  • Shows topline progress, engagement, list quality, and deliverability.
  • Displays both percentage bars and hard counts for contacted and completed leads.
  • All Replies and Pos Replies remain human-reply metrics only.
  • Auto Reply Rate is a deliverability-oriented rollup that combines human replies with automated non-bounce replies such as out-of-office messages.

Deliverability Summary Metrics

  • Content Health: overall deliverability content score from Beam deliverability testing.
  • Infra Health: overall mailbox/reputation health score from Beam deliverability testing.
  • Auto Reply Rate: total reply rate including autoresponder replies such as out-of-office messages.
  • On Google and Microsoft, only messages that land in inboxes can generate these auto replies, so this metric is treated as a deliverability signal.
  • The lead count under Auto Reply Rate is the number of deduplicated leads who generated either a human reply or an automated non-bounce reply.

Click tracking replaces eligible public HTTP and HTTPS links in campaign emails with short URLs on the sending email address's domain. They redirect to the saved destination and support bot-filtered click estimates. For example, an email from founder@getstartup.com can replace https://startup.com/news with https://getstartup.com/Lx. Visits to the bare domain use the separate walk-in tracking settings.

Choose Which Campaigns Track Links

  1. Open Settings → Tracking. Click tracking starts off.
  2. Set Enable click tracking and choose New campaigns only or New and existing campaigns, then select Apply Changes. Both enabling and disabling use this scope. New campaigns inherit the saved default at creation; previously created drafts count as existing campaigns.
  3. To change one campaign, open its Creative tab and use the action menu's Click tracking: On or Click tracking: Off action. The choice saves immediately on both Create and Edit campaign pages.

Changing only the new-campaign default preserves existing campaign choices. Applying to new and existing campaigns can reset those choices, including retained drafts, paused, completed, and archived campaigns. Review the affected count before applying. Settings shows the saved default separately from existing campaigns still tracking.

Resolve a Tracking Problem

Campaigns with tracking On wait for the sending domain to be ready. Launch, Resume, and active campaign pages explain a tracking hold and link to Creative. Set Click tracking: Off for the affected campaign to remove that hold; other sending requirements still apply.

Settings → Tracking shows sending-domain readiness, including pending, queued, running, and failed checks. An Admin or Owner can select Check again. A recheck confirms recovery but does not repair DNS or certificates. Contact support for a domain fault. Next scheduled check is the next check time, not a deadline for readiness.

Issued links keep redirecting to their saved destinations after tracking is turned off, and past results remain available. Disabling a campaign stops future click measurements, including visits to its old links. Re-enabling starts tracking from then on; missed visits are not recovered. Messages already prepared retain their contents and links, and uncertain deliveries are reconciled before retrying.

Read Click Results

Campaign Analytics shows one Clicks number: distinct original leads with likely-human navigation. Machine visits are excluded; ambiguous visits are retained but not counted. Repeated visits count once per lead, and forwarding retains original attribution. Select Unique leads to open the counted leads. Step and variant counts use their own accepted-send cohorts.

Automated link scanners and other bots are excluded. A visit counts only when Beam finds positive evidence of a person's browser on an ordinary ISP or business network, or through a recognized relay service such as Apple Private Relay. Visits with missing or unresolved evidence stay ambiguous. Visits before the email was accepted for delivery are excluded. See Campaign Click Evidence for the three classes and click_evidence=unknown inspection.

There is no optimistic bracket. API and MCP optimistic_* fields are deprecated aliases equal to primary values. A dash means no eligible links; No data means no tracked-send denominator. The history indicator shows when tracking was off during the reporting period. Walk-in tracking is unchanged.

Preview and Test Links

Campaign previews and test emails follow the campaign's click-tracking choice. With tracking On, previews use a ready sending domain, and test emails use the selected mailbox's sending domain, which must be ready. With tracking Off, links lead directly to their original destinations. Preview and test links open the intended destinations without recording campaign lead engagement.

Interactive replies, attachments, unsubscribe and authentication links, and ambiguous prose links keep their original URLs. Short URLs expose their destination through a normal redirect; do not use them to conceal private access links. Activity records campaign tracking changes with the actor and source. Workspace tracking changes also record the selected scope and affected campaign count. The workspace settings API, campaign API, analytics API, and Lightmeter MCP tools expose the same tracking controls and results.

Reply Counting Rules

  • All Replies and Pos Replies stay human-only.
  • Auto Reply Rate combines the deduplicated human-reply count with the deduplicated automated non-bounce reply count.
  • A sender with both an automated non-bounce reply and a later human reply still counts once in the combined Auto Reply Rate.
  • Multiple auto replies from the same sender still count as one lead in campaign summary metrics.

Step Performance Analytics

  • Engagement: Sent, Replies, Reply Rate, Clicks.
  • Replies in analytics are inbound campaign replies from leads, not outbound Interactive Replies sent from the Unibox.
  • Content Health: Size, Google and MS365. The compact headings mean Google Score and Microsoft 365 Score; their calculations are unchanged.
  • Infra Health: deliverability score for the selected report period.
  • Actions: Preview, Pause/Unpause, Delete (variant rows).

Metric Timeframes on this Table

  • Content Health uses the most specific available test result: exact message results when available, then campaign step-and-variant results, then campaign-level results, then recent workspace-level sampled content tests.
  • Infra Health reflects deliverability during the selected report period.
  • Size is average email body size measured in bytes.
Reports

Open Reports for workspace-wide results. Tabs include Summary, Campaigns, Engagement, Reply handling, Deliverability and Stocks, plus Revenue once Revenue attribution is set up for a CRM.

Summary, Reply handling, Revenue and Booked Positive conversations share one definition of a Positive conversation: a conversation whose current Unibox classification is Positive, counted once. Each report still applies its own date rules, described below. When you correct a classification, these reports follow the change. Archived campaigns are included; deleted campaigns are not.

Summary

  • Leads Reached counts leads first sent a campaign email in the selected period. A lead in two campaigns counts twice, and follow-up emails don't count it again in a later period.
  • Reply Rate and Positive Reply Rate are the share of those first-contacted leads, excluding bounced ones, that have replied or have a Positive conversation. Later replies update the period in which the lead was first contacted, so recent periods can rise as replies arrive.
  • Replies and Positive Reply Share are instead based on replies received during the selected period, so they need not match the rates.
  • The unreachable rate uses the same first-contacted leads.

Reply Handling

AI replies shows Drafted, Sent as is, Sent edited, Discarded by reason, No draft, No reply needed, Unsent, and Median minutes from draft to send. Counts select attempts created during the selected UTC dates and show current outcomes. Each includes its period and denominator. Superseded drafts remain in Drafted but have no outcome, so outcomes need not add up to Drafted.

Drafted requires generated text. Superseded attempts without text are excluded. No draft counts failed attempts and ready attempts without generated text that need a reply. Unsent counts ready drafts with generated text that need a reply. No reply needed is separate; closing such an attempt with Discard preserves No reply needed and does not increase Discarded. Removed leads, deleted campaigns and inactive workspaces are excluded. Missing timing shows an en dash; a measured zero stays zero.

The section appears for workspaces with AI replies draft history when AI replies is available, even if the selected dates have no attempts. The API GET /api/v1/reports/speed-to-lead and MCP tool workspace_report_speed_to_lead_get return the same counts in data.ai_replies, independently of browser visibility. It is null without eligible history or when this optional section is temporarily unavailable. Otherwise it includes period_start (inclusive), period_end (exclusive), attempts, drafted, sent_as_is, sent_edited, discarded, discarded_by_reason (reason/count pairs), no_draft, no_reply_needed, unsent, superseded, send_timing_sample, and nullable median_minutes_to_send. A missing discard reason is null. The median uses sent drafts with valid recorded durations; its sample count is out of all sent drafts.

Reply handling shows how quickly your team answers lead replies, including Avg. Response and Unanswered replies. With a connected calendar, it also shows Booked meetings; see Booked Meetings & Connected Calendars.

A reply is counted as Handling unverified when Lightmeter cannot confirm from your connected CRM whether your team answered it; the report shows how many replies that applies to. If some CRM emails could not be loaded, it says which CRM and when, for example “Some HubSpot emails updated between 6 Oct 2026 and 14 Oct 2026 couldn't be loaded, which can leave replies unverified.”

Revenue

Revenue groups Deals or Opportunities attributed to Positive conversations by Outreach month, the month of the originating Positive conversation. Later Qualified and Closed Won outcomes stay with that month. Revenue attribution is not a sales forecast.

  • First-year value adds one-off values once, monthly values twelve times and annual values once. Its table shows One-off, Recurring per month and First-year value for Qualified and Closed Won outcomes. When your CRM amounts store estimated gross profit, the heading is First-year value (estimated GP).
  • A Close value with no period counts once and shows period not set. HubSpot Deal amounts and Salesforce Opportunity Amounts count once.
  • Lightmeter never converts currencies; for HubSpot, the home-currency amount HubSpot provides is used when there is one. Values in other currencies appear in their own rows, with N values in other currencies shown separately, and report-currency totals are then partial. A missing amount shows Amount missing, never zero.
  • With an optional monthly target, the report compares the Highest known 90-day Closed Won subtotal, using first-year value, with a 90-day target. When some values are missing or in other currencies, it shows Minimum target attainment.
  • Weighted values multiply each known amount by that Deal's or Opportunity's current probability in your CRM. They are not forecasts.
Reply Attachments in the Unibox

Add documents or images to replies you send from the Unibox.

Add an Attachment

  • Open a reply draft in the Unibox and select Attach in the message composer. Choose a recently used attachment, or select Browse files….
  • You can also drag and drop a file anywhere into the composer, or paste an image.
  • Recently used attachments make it easy to reuse standard sales documents and decks, including on mobile devices.

Limits and Draft Behavior

The Unibox supports up to five documents or images per reply, with a 10 MB limit per file and a 15 MB total. Uploaded files remain in the draft if sending needs to be retried.

Reply Snippets

Beam includes a shared reply snippet library for the Unibox so your workspace can reuse common follow-up copy without leaving the thread.

Where to Manage Snippets

  • Open Settings → Snippets to view and edit the shared workspace library.
  • From the campaign editor, open the snippets manager modal when you want to update reusable reply copy without leaving campaign setup.

How to Insert Snippets and Variables

  • Open a reply or forward draft in the Unibox.
  • Type / to open the insert menu. Variables appear first, followed by saved snippets where snippets are supported.
  • Type # to open the snippet-only picker.
  • Use the search field in the insert menu to narrow the list, then press Enter or select an item to insert it at your cursor position.
  • Inserted snippets append into the draft. Existing draft content is not replaced.
  • Variables inside inserted Unibox snippets resolve to the current thread's lead and sender values and are highlighted in the draft.
  • Use Preview to review the final reply without editor-only highlighting before sending.
  • If a snippet contains a variable that is missing or empty for the selected thread, the Unibox shows a visible missing-value marker and blocks sending until the draft is fixed.

How to Insert Content While Editing a Snippet

  • In the snippet editor on Settings → Snippets or in the New snippet dialog from the Unibox, type / to open the insert menu.
  • Type # to open the snippet-only picker while editing a snippet.
  • Variables appear first in the / menu. Other snippets appear below them when they are available.
  • Use the search field in the insert menu to narrow the list, then press Enter or select an item to insert it into the snippet body.
  • This works in both the plain text and rich text snippet editors. The snippet currently being edited is not shown in its own insert menu.

Create a New Snippet From Draft Text

  • Highlight the part of the reply you want to reuse.
  • Click New snippet in the composer toolbar.
  • Name the snippet and save it to the shared workspace library.

Rich Text and Plain Text Behavior

  • A snippet can have a plain text version and a rich text version.
  • Campaign editors insert plain text only. Rich text snippet content is never inserted into campaign copy.
  • The Unibox inserts the version that matches the active composer mode: rich text in rich mode, plain text in plain text mode.
  • Use Generate Plain Text from Rich or Generate Rich Text from Plain to create or refresh one version from the other, then review and save it before inserting.
  • When generating rich text from plain text, Markdown-style bullets and links are converted into rich formatting for review before saving.
  • If the generated version would replace existing content, Beam asks you to confirm before overwriting it.
  • Plain text contexts show only plain text. Add visible URLs to the plain text version when a URL should appear in the plain body.
  • Variables such as {{firstName}} are preserved using Beam’s existing template rendering rules.
Activity Log

Beam includes a dedicated Activity Log so teams can verify who changed what, and when.

It is the primary product surface for auditability and audit log review.

Where to View It

  • Open Settings → Activity.
  • By default, Beam shows account-level campaign events in reverse chronological order.
  • Use Also show → Lead changes when you need per-lead membership outcomes. Choosing a lead event, such as Lead added, under Event types also shows it.

What You Can Verify

  • Campaign status changes, including pause, resume, end, reopen, and reviewed paused-lead recovery.
  • Sequence and variant changes, including variant paused and variant unpaused.
  • Team member invites, role changes, access removals, and fresh setup-link creation.
  • Deduplication policy changes and dedupe-based lead skips during audience import or CSV top-up.
  • Audience import outcomes (lead added vs skipped) when Lead changes is shown.
  • Actor identity and source (for example UI, API, system, worker).

How to Use It Operationally

  • Validate experiment changes before reviewing performance shifts.
  • Confirm exactly when a variant was paused/unpaused relative to KPI movement.
  • Resolve team handoff questions with a shared, timestamped timeline.

UI Behavior

  • The Activity page is paginated (30 events per page by default).
  • Events are displayed as a timeline table with time, event type, campaign, summary, actor, and source.
Frequently Asked Questions (FAQ)

“I paused a variant but leads still moved”

That is expected when other variants in the same step are still active. Leads are reallocated to active variants in that step.

“Why is Pause/Delete disabled in Analytics actions?”

Analytics quick actions enforce at least one active variant per step. This avoids accidentally blocking sends from the analytics table.

“Why can I delete the last step but not a middle step?”

Deleting a middle step requires Beam to renumber every later step safely. If the campaign can no longer support that compaction flow, Beam disables middle-step deletion instead of risking a partially updated sequence. Final-step deletion can still stay available because it does not require renumbering earlier steps.

“Why is a report row not clickable?”

Some legacy rows may not have a direct campaign ID. Beam uses a safe fallback by campaign name, and disables linking if the match is ambiguous.

“Why did report metrics shift?”

Some report definitions can evolve over time (for example reply counting or deliverability calculations). Compare like-for-like time windows and check your Activity Log before drawing conclusions.

“Why do reply counts look lower than raw reply-email volume?”

Campaign-level reporting deduplicates by sender in each campaign, so multiple reply emails from the same sender do not all increase the campaign reply count.

“Do campaigns stop sending after a lead replies?”

Yes, after the first qualifying human reply. When Beam receives the first human reply for a campaign lead, it stops future campaign sends to that lead in that campaign.

Explicit unsubscribe replies also stop the lead immediately and add the recipient to the workspace blocklist. Automated non-bounce replies such as out-of-office messages are tracked separately under Auto Reply Rate and do not by themselves mark the lead as replied.

“Why is Auto Reply Rate separate from Reply Rate?”

Beam keeps the raw automated non-bounce reply signal separate so human reply metrics keep their existing meaning. Auto Reply Rate is the deliverability-oriented rollup that combines human replies with automated non-bounce replies.

“What is an Interactive Reply versus a threaded step?”

Interactive Replies are manual one-to-one messages sent by a user from the Unibox. Threaded steps are scheduled campaign steps configured to send in an existing email thread. They are different Beam concepts.

“Can I verify who paused or unpaused a variant?”

Yes. Go to Settings → Activity to view the Activity Log with timestamp, actor, and event summary (including sequence pause/unpause events).

Missing Features or Controls

If features you expect to see are missing, check that browser privacy or ad‑blocking tools are not blocking PostHog.

  • Disable adblockers for the Beam site.
  • In Firefox, turn off Enhanced Tracking Protection for the site and reload.