Customer portal SaaS guide

Best Email Platforms for Customer-Portal SaaS in 2026

Portal email should send people to a current, authenticated page. It should not carry the sensitive detail itself.

By the editorial team. Prices were read from each vendor's public pricing page on 7 October 2026.

For most customer-portal SaaS products, Postmark is the best starting point for the messages that gate access: invitations, sign-in notices, access changes and document-ready alerts. Its transactional focus keeps those sends apart from newsletters and promotions, and its pricing page lists the Basic plan at $15 per month for 10,000 emails. Teams that also need journeys triggered by billing or product events should compare Customer.io with the other lifecycle tools on the same list before committing, because those tools answer a different question.

This guide is written for product and operations leads who run a portal where customers, partners or administrators sign in to see contracts, invoices, documents, support cases or approvals. It explains which kind of platform fits each message type, what the listed prices look like at realistic send volumes, how to design links that stay safe after access changes, and how to stop stale messages from reaching people who should no longer receive them.

What portal email is actually for

A portal sits between your application and the people who use it. Email has a narrow job in that arrangement: it tells a person that something needs attention and gives them a safe way to reach the authenticated page. The sensitive content stays behind the sign-in. This sounds obvious, but many portal products drift into sending invoice totals, contract clauses or case notes in the body of a message. From that point the mail archive becomes a second copy of the data, and nobody is responsible for it.

Portal SaaS usually sends five families of message. Each has a different source of truth, a different recipient and a different failure mode, so each deserves a deliberate choice of sender and a deliberate rule for when it should stop.

  • Invitations come from the identity or account system. The source of truth is the invitation record. The main risk is an invitation that is still live after the person has signed in another way or has been removed from the account.
  • Access changes come from the permission system. A role was added, removed or narrowed. The safe message usually names the change in general terms and points to the account page or to support. It should not list in detail what the user can now see.
  • Document availability comes from the document service. The email should announce that a file exists and open the portal location where it can be downloaded. The file itself does not belong in the message.
  • Case updates come from the support or workflow system. A status change is usually enough. Replies with case notes should happen inside the portal, where each reply is authenticated and logged against the person who wrote it.
  • Billing notices come from the billing provider. A failed payment or an upcoming renewal is a common reason to email a portal user, and the safest action is a link to the hosted invoice or card-update page rather than a copy of the invoice.

When you write the message map for your own product, record the source of each message type and the single condition that should stop it. Most avoidable incidents come from a message whose stop condition was never written down, because the team assumed the sender would somehow know.

How this comparison was prepared

The editorial team read each vendor's public pricing page and, where it helped explain a plan, the public product documentation, on 7 October 2026. We are not presenting trial results or test sends. Prices are shown as the vendor lists them, with the plan name, the billing view and the volume band they apply to. Where a vendor publishes no public price, the page says "pricing on request" and does not estimate a figure.

The tools are grouped by the role they play in a portal rather than ranked on a single score. A portal that sends access notices has different needs from a portal that runs onboarding journeys, and a single ranking would hide that difference. Each tool section explains what it does well for a portal, where it falls short, what it costs on the listed plans and where to find the current pricing page. Check those pages before you buy, because plan limits and bands change.

PlatformBest for in a portalEntry price (plan and billing)Key limitation
PostmarkInvitations, sign-in notices and document alertsBasic at $15 per month for 10,000 emails; free plan for 100 emails per monthEducation and marketing sends need a second system
ResendNotices triggered from application codeFree plan for 3,000 emails per month; Pro at $20 per month for 50,000 emailsSegmentation and journeys sit outside the platform
Amazon SESLowest unit cost for service mail on AWSUsage-based at $0.16 per 1,000 emails (Essentials, 0 to 10 million emails per month)You build suppression, templates, audit trails and monitoring
MailgunEngineering-led routing and delivery webhooksFree plan for 100 emails per day; Basic at $15 per month for 10,000 emailsPortal state and support logic need surrounding systems
SendGridSteady notice traffic with dynamic templatesBasic at $15 per month (plan selector band up to 300,000 emails); 60-day trial at 100 emails per daySecure-link and permission logic remain your responsibility
Customer.ioBehavioral onboarding by role and product eventEssentials at $100 per month base; profile tiers from $145 per month at 10,000 profilesAccess and document-state data need governance before use
BrazeLarge cross-channel programsPricing on request; free trial offeredBuilt for large programs, so setup and governance take real effort
IterableJourney testing for mature lifecycle teamsPricing on request; demo booking requiredNeeds an experienced operations team to run safely
HubSpot Service HubCustomer portal and help desk tied to CRM recordsFree for up to 2 users; Professional at $100 per seat per month ($90 billed annually)Cost scales per seat, and paid tiers carry a one-time onboarding fee
IntercomCase conversations and support notificationsEssential at $29 per seat per month, billed annually; 14-day free trialBuilt around conversations, so bulk notices are not its center
BrevoLean teams combining campaigns and transactional sendsFree plan for 300 emails per day; Starter at $9 per month from 5,000 emailsA shared stack for promotion and service needs careful separation
ActiveCampaignSmaller portals with guided onboardingStarter at $15 per month from 1,000 contacts; free trial, no free planPermission state should not live only in contact fields
PostHogMeasuring portal adoption and workflow frictionFree monthly allowance on every product; usage-based beyond itIt is an analytics product and does not deliver email

Matching the message to the platform

Start from the message, not the platform. A single portal often needs two senders: one for access-critical notices that must arrive and must not be stopped by a marketing decision, and one for lifecycle or education mail that can be paused, segmented and tested. Most of the tools in this list fit one of those two roles well. Some fit both, but only with careful separation.

Access-critical notices include invitations, sign-in confirmations, access changes, password-related messages and document-ready alerts. These sends are tied to a specific event in your application, and each one should be sent once, to the right person, at the right time. They should go through a transactional sender with its own configuration, its own sending identity and its own monitoring. Postmark, Resend, Amazon SES, Mailgun and SendGrid are built around that kind of sending. Their differences lie in how much of the surrounding system they leave to you.

Lifecycle and education mail includes onboarding series, product tips, renewal reminders that are not tied to a single security event and, for some products, billing-driven messages. These sends depend on segments, behavior and timing. Customer.io, Braze, Iterable, ActiveCampaign and Brevo handle that work, each with a different balance between behavioral depth, integrations and cost. Several of them can also send transactional mail, which is convenient, but convenience is not a reason to share a stream with access notices.

Operations tools sit beside both. HubSpot Service Hub and Intercom manage support cases, help desks and conversations. PostHog measures how people move through portal flows. Neither should be the only system that decides whether an access notice is sent.

The five decisions that shape your stack

Before you compare prices, settle five questions. They determine which platforms belong on your shortlist, and they explain most of the cost differences that appear later in this guide.

1. Who is the sender of record for each message? If the portal is the authority for access, the sender must read access state from it rather than store its own copy. If a sender keeps a contact field that says a user is active, that field will eventually disagree with the portal. Decide which system is authoritative, then decide how often the sender must check it.

2. Which events must stop a message? Acceptance of an invitation, revocation of access, completion of onboarding, account closure, document withdrawal and expiry of a link are the usual candidates. Each one should be an event the sender can receive, and each should stop both queued and future sends for that person. A stop rule that exists only in a document is not a control.

3. How much data may the sender hold? Email platforms store recipient addresses, message content and delivery events. Portal platforms often hold account identifiers, role names and document references. Keep the sender's data to what is needed to send and to explain the send. Account notes, invoice amounts and case text are better left in the portal.

4. Who will run it after launch? Engineering owns the event feeds and the suppression logic. Operations owns the templates, the reviews and the reconciliation. A platform designed for large lifecycle teams requires a team of that size to run well. A small portal can run a simpler sender with a small team, and should not buy capacity it cannot staff.

5. Which unit of pricing matches your business? Some platforms charge by emails sent, some by contacts or profiles, some per seat and some per transaction. Comparing them on one line of a spreadsheet is the most common reason a budget looks wrong after signing. The cost section below translates each plan into a monthly figure at realistic sizes, and shows the unit each one uses.

Cost at realistic send volumes

Portal sends are usually small in number but high in consequence. A portal with a few thousand users that sends invitations, access notices and document alerts each week may send only a few thousand emails a month. A larger B2B portal with case updates, billing notices and onboarding can reach six figures. The table below uses four monthly send counts and names the plan each listed price applies to. Where a plan's volume band is larger than the count, the plan that covers the count is shown, and the figure is the listed monthly price from the vendor's pricing page.

The figures are the plain listed prices. They do not include taxes, overage charges, add-ons or the engineering time needed to run the surrounding system. Confirm the current band and the overage terms on each pricing page before you commit a budget.

Emails per monthPostmarkResendAmazon SESMailgunSendGrid
2,500$15 (Basic, 10,000-email plan)Free (3,000 emails per month)$0.40 at $0.16 per 1,000$15 (Basic, 10,000-email plan)Marketing Campaigns free plan (up to 6,000 emails and 2,000 contacts)
10,000$15 (Basic, 10,000 emails)$20 (Pro, 50,000-email plan)$1.60 at $0.16 per 1,000$15 (Basic, 10,000 emails)$15 (Basic)
50,000$55 (Basic at 50,000 emails)$20 (Pro, 50,000 emails)$8.00 at $0.16 per 1,000$35 (Foundation, 50,000 emails)$19.95 (Essentials band, 50,000 to 100,000)
100,000$115 (Basic at 125,000 emails)$90 (Scale, 100,000 emails)$16.00 at $0.16 per 1,000$90 (Scale, 100,000 emails)$89.95 (Pro band, 100,000 to 2.5 million)

Reading the cost table honestly

Four details change the comparison. The first is that Amazon SES is the lowest price per email on the list, but its listed rate covers sending only. Suppression lists, templates, retries, audit storage, dashboards and the engineering time to keep them working are costs you carry yourself. For a small team, a managed plan can cost less in total even when its per-email figure looks higher. The pricing page does describe up to $200 in credits for eligible new AWS customers, which can offset early months, but it should not be the basis of a long-term budget.

The second detail is that Customer.io prices on profiles, not on sends. Its Essentials plan is listed at $100 per month as a base. Profile tiers are listed monthly at $145 for 10,000 profiles, $235 for 20,000, $325 for 30,000, $415 for 40,000 and $505 for 50,000 and above. If your portal has 20,000 accounts that each receive onboarding messages, the profile count is the figure to budget against, whatever the number of emails. Premium uses custom profile volume and pricing. The pricing page also describes 12 months free through its Startup Program for eligible early-stage companies that have raised under $10 million.

The third detail is that HubSpot Service Hub prices per seat. Its free tier covers up to 2 users. Professional, which includes the customer portal, is listed at $100 per seat per month, or $90 per seat when billed annually. Enterprise is listed at $150 per seat billed annually. Paid Professional and Enterprise tiers carry a one-time onboarding requirement. Multiply the number of staff seats by the seat price before comparing it with email-volume plans. A portal with a large external audience of customers who only sign in will not map neatly to a seat model.

The fourth detail is that the plan bands differ. Postmark's 50,000-email plan is listed at $55, while its 125,000-email plan is listed at $115, so a portal sending 100,000 emails has to buy the larger band. SendGrid's bands are wide, so a portal at 60,000 emails pays the same as one at 100,000 on the Essentials line. Resend's Pro plan at 50,000 emails is $20, and its Scale plan at 100,000 emails is $90. Read the band, not only the headline figure.

The tools, one by one

Each section below covers one tool through the lens of a customer portal. It describes what the tool does well for this use, where it falls short, what it costs on the listed plans and where to find the current pricing page. Read them as a set of trade-offs rather than a ladder. The best platform for a portal with 3,000 users and no billing events is not the best platform for a portal with 300,000 users and an onboarding program.

Postmark

What it does well for a portal. Postmark is built around transactional mail, which is the message class that gates access. Invitations, sign-in notices, password-related messages and document-ready alerts are the kind of sends it is designed to carry. Keeping them apart from marketing traffic protects them from a promotional incident. Its API suits an application that already knows the account, the role and the state that triggered the message, so the message can be generated at the point where the permission check has just happened.

Where it falls short. Postmark does not run onboarding journeys, complex segmentation or product-education series. If you need those, you add a second system and must decide where the shared identifiers live. Education and marketing sends should not share the transactional stream, which means your portal ends up with two places to manage suppression. Plan for that from the start.

Price. The free plan allows 100 emails per month. The pricing page lists Basic at $15 per month for 10,000 emails, and the 50,000-email Basic plan at $55 per month. The 125,000-email Basic plan is listed at $115 per month. These are the plans to compare against your monthly send count.

Postmark pricing page

Resend

What it does well for a portal. Resend suits teams whose engineers want notices generated directly from application code. Invitation creation, access changes and document availability can be triggered at the place where the permission check already happens, which keeps the logic in one codebase. The free plan, at 3,000 emails per month and 100 per day, is enough for a pilot portal to prove its flows before paying for volume.

Where it falls short. Resend is an API-first sender. Audience segmentation, lifecycle journeys and portal education must be built or bought elsewhere. Your application owns role resolution, secure-link generation and suppression after a portal state changes. That is a reasonable split for an engineering-led team and a heavy one for a team without developers on call.

Price. The free plan covers 3,000 emails per month and 100 per day, with three domains. The Pro plan is listed at $20 per month for 50,000 emails, and the Scale plan at $90 per month for 100,000 emails. A separate marketing product on the same pricing page is priced by contacts, with a free tier for up to 1,000 contacts and paid tiers from $40 per month at 5,000 contacts. That matters only if you add campaigns later.

Resend pricing page

Amazon SES

What it does well for a portal. Amazon SES has the lowest listed price per email in this guide: $0.16 per 1,000 emails on the Essentials tier across the 0 to 10 million email band. For a team that already runs AWS, it can be the base for service mail, with sending identities, IAM controls and the rest of the AWS environment in place. The pricing page describes up to $200 in credits for eligible new AWS customers, and a free plan for six months after account creation.

Where it falls short. SES gives you the transport, not the product. Suppression logic, template management, bounce and complaint handling, audit trails and dashboards are your responsibility. For access-critical mail that work is substantial and must be maintained as the portal grows. Failures do not appear as a clear dashboard. They appear as a user who never received a sign-in notice, which is why the monitoring has to be designed deliberately.

Price. Usage-based. The listed rates are $0.16 per 1,000 emails on Essentials, $0.22 on Pro and $0.23 on Enterprise, each for the 0 to 10 million emails per month band. At 10,000 emails the Essentials rate comes to $1.60 per month, and at 50,000 emails to $8.00. Those are sending costs only.

Amazon SES pricing page

Mailgun

What it does well for a portal. Mailgun suits engineering-led teams that want routing control, a RESTful API, SMTP relay and delivery webhooks. Webhooks let the application react to bounces and complaints, which is useful for stopping future sends to addresses that should no longer receive portal mail. The same events can feed the suppression log that support will eventually need.

Where it falls short. Like SES, Mailgun leaves portal state, support journeys and access logic to the surrounding system. Its plans are priced by volume, so a portal that grows quickly should read the overage terms on the pricing page rather than only the headline plan. Webhook handling is your code, and it must be idempotent if you want reliable suppression.

Price. The free plan allows 100 emails per day. Basic is listed at $15 per month for 10,000 emails, Foundation at $35 per month for 50,000 emails and Scale at $90 per month for 100,000 emails. The pricing page describes one month free on Foundation and Scale, and 30-day trials on paid plans.

Mailgun pricing page

SendGrid

What it does well for a portal. SendGrid handles steady, high-volume notice traffic and offers dynamic templates, so one access-notice layout can serve several account types with different fields. Its delivery events help the application record what happened to each message. For portals with large user bases and regular notices, it is a practical option, particularly when the team already has familiarity with its API.

Where it falls short. Secure-link design and permission logic remain the application's job. A template does not decide whether a user should still receive an invitation, and a stale link is a security issue whichever sender delivered it. Be careful with the product split as well. SendGrid's Email API and its Marketing Campaigns product have different plans, limits and contact rules, and a budget built on one may not match the other.

Price. The Email API offers a 60-day free trial at 100 emails per day. Basic is listed at $15 per month in the plan selector band up to 300,000 emails. Essentials is listed at $19.95 per month for the 50,000 to 100,000 email band, and Pro at $89.95 per month for the 100,000 to 2.5 million band. The Marketing Campaigns free plan covers up to 2,000 contacts and 6,000 emails per month.

SendGrid pricing page

Customer.io

What it does well for a portal. Customer.io is a behavioral platform. Onboarding can branch by role, account type or product event, such as the first document upload or the first completed approval. That suits portals where activation matters and where the next message depends on what the user has already done. Its visual workflow builder lets non-engineers read and adjust the branches.

Where it falls short. Behavioral onboarding works only when account, role and permission events are governed separately from campaign attributes. Document-state and access-state data should not be treated as marketing fields, and revoked or completed states need hard suppression rules that run before every send. The platform does not replace an identity system or a secure-link service, and profile-based pricing means a large portal with many accounts must budget for every profile it stores.

Price. Essentials is listed at $100 per month as a base, including the AI Agent core skills, the visual workflow builder, email and community support and basic data integrations. Profile tiers are listed monthly at $145 for 10,000 profiles, $235 for 20,000, $325 for 30,000, $415 for 40,000 and $505 for 50,000 and above. Premium uses custom profile volume and pricing and is listed at $1,000 per month on the pricing page.

Customer.io pricing page

Braze

What it does well for a portal. Braze is a cross-channel platform for large lifecycle programs. For a portal with a big user base, several account types and a dedicated lifecycle team, it can coordinate email with other channels and keep one view of the user. Its identity and audience tools suit organizations that already treat customer data as a shared asset with clear ownership.

Where it falls short. Braze is built for large programs, so setup, governance and operational ownership take real effort. A portal that only needs transactional access notices carries capability it does not use. Access and security events need protected message streams, and that design work must happen before the platform is connected to live accounts.

Price. Braze does not publish a self-service price. Its pricing page offers a free trial and no public tier. Ask for a quote based on your profile count and message volume, and ask which plans include the transactional features your portal requires.

Braze pricing page

Iterable

What it does well for a portal. Iterable is a lifecycle platform with journey controls and experimentation. For a mature portal team that wants to test onboarding variants, it offers a structured way to compare journeys, provided that test arms never affect access notices.

Where it falls short. Experimentation can quietly undermine access clarity if a test arm suppresses a required notice. Revoked or completed states need hard rules that no experiment can override. Iterable also needs an experienced operations team to run it safely, and that staffing cost belongs in any comparison.

Price. Iterable does not publish a self-service price and directs buyers to book a demo. Treat any budget as pricing on request until you have a written quote.

Iterable pricing page

HubSpot Service Hub

What it does well for a portal. Service Hub includes a customer portal, help desk, knowledge base and customer feedback surveys in one product. For teams whose portal users are also customers in the CRM, the advantage is that contacts, companies and cases share a record. Support conversations, portal access and feedback can be reviewed together.

Where it falls short. Portal events and secure content remain outside the contact record, so the platform needs careful design to keep authorization authoritative in the portal. Costs scale per seat, which makes it a poor fit for a large external user base that does not need staff seats. Paid tiers carry a required one-time onboarding fee, which should be added to the first-year figure.

Price. The free tier covers up to 2 users. Professional is listed at $100 per seat per month, or $90 per seat billed annually. Enterprise is listed at $150 per seat billed annually and adds conditional SLAs, customer journey analytics and skill-based routing.

HubSpot Service Hub pricing page

Intercom

What it does well for a portal. Intercom is built around conversations. Its messenger, shared inbox, ticketing and public help center suit portals where a case update leads to a reply, a follow-up or a human handoff. Case notifications are more useful when the user can continue the conversation inside a session that is already authenticated.

Where it falls short. Sensitive documents should stay behind authenticated portal links rather than move into a support thread. Intercom is one channel among several, and per-seat pricing means a large external user base does not map neatly to its plans. It is a support platform first, so bulk access notices are not its central use.

Price. Essential is listed at $29 per seat per month billed annually, Advanced at $85 and Expert at $132. The pricing page describes a 14-day free trial with no credit card required and no ongoing free plan.

Intercom pricing page

Brevo

What it does well for a portal. Brevo combines campaigns and transactional sends in one account. Its free plan allows 300 emails per day and storage for up to 100,000 contacts. For a lean team that sends a modest number of portal notices and also runs occasional campaigns, one account can keep the setup simple.

Where it falls short. Sharing one stack between promotion and service mail requires discipline. Keep access notices on their own sending configuration and make sure a marketing complaint spike cannot delay an invitation. Validate secure-link handling and access-event integrations end to end before you rely on them, because the daily sending limit on the free plan can interrupt notices at the wrong moment.

Price. The free plan allows 300 emails per day. Starter is listed at $9 per month for plans starting at 5,000 emails per month with no daily sending limit, and Standard at $18 per month for the same starting volume, with automation, A/B testing and advanced reports. Professional is listed at $499 per month for 150,000 to 10 million monthly sends.

Brevo pricing page

ActiveCampaign

What it does well for a portal. ActiveCampaign is a practical choice for a smaller portal that wants guided onboarding, automation and contact-level fields in one tool. A welcome sequence that depends on a few onboarding steps is easy to build and to read, which helps non-engineers maintain it.

Where it falls short. Contact fields are convenient, but they should not be the only store for permission or document state. If a field is out of date, the wrong message goes out. Keep the authoritative state in the portal and sync only what the sender needs. The platform does not provide the secure-link and identity layer that a portal requires.

Price. ActiveCampaign has no free plan but offers a free trial. Starter is listed at $15 per month, Plus at $49, Pro at $79 and Enterprise at $145. Each starts at 1,000 email contacts and rises with the contact count, so the contact total of your portal is the figure to check.

ActiveCampaign pricing page

PostHog

What it does well for a portal. PostHog is an analytics platform, not a sender. It is useful for measuring whether portal users reach the document, complete the approval or return after an invitation. That measurement shows whether the notice flow is working without putting campaign logic into the sending path.

Where it falls short. PostHog does not deliver email, so access-critical mail needs a dedicated delivery provider. Use it as the measurement layer beside the sender, not as a replacement for one. Be deliberate about what user properties you send to it, because analytics stores often outlive the feature that created them.

Price. Every product includes a free monthly allowance, for example 1 million analytics events, 5,000 session recordings and 1 million feature flag requests, according to the pricing page. Usage beyond the allowance is priced per unit, with no minimums or annual commitment required.

PostHog pricing page

Which tool for which message

The table below maps common portal needs to the platform that fits each one and the reason it fits. It is a starting point, not a verdict. Your message map and your stop rules should decide the final shortlist, and the price should be checked against the band that matches your send count.

If you needStart withBecause
Invitations and sign-in notices that must not be delayedPostmarkTransactional focus, with the Basic plan listed at $15 per month for 10,000 emails
Notices triggered by code your engineers already ownResendAPI-first design and a free plan of 3,000 emails per month for a pilot
The lowest per-email rate and a team that already runs AWSAmazon SESListed at $0.16 per 1,000 emails, with suppression and audit built in-house
Engineering-led routing with delivery webhooksMailgunRouting control and webhook events for bounces and complaints
Steady notice traffic with shared templatesSendGridDynamic templates and delivery events, with plan bands that are wide at volume
Onboarding that branches by role and product eventCustomer.ioEvent-based workflows, with pricing set by profile count
Portal and help desk tied to CRM recordsHubSpot Service HubCustomer portal included in Professional, priced per seat
Cross-channel programs at large scaleBraze or IterableBuilt for large programs; pricing on request
A small budget that covers campaigns and transactional sendsBrevoFree plan of 300 emails per day and a Starter plan from $9 per month
Measuring whether portal flows workPostHogFree monthly allowance per product, used beside a separate sender

Setup and migration checklist

Whichever platform you choose, the setup work is mostly about shared identifiers, stop conditions and tests of the failure cases. The checklist below sets out the order in which a portal team should do that work. It applies to a first build and to a migration. Moving an existing portal's notices from one sender to another is where most errors occur, because the old sender may have been doing things nobody wrote down.

StepOwnerDone when
1. Write the message map with the source and the stop condition for each message typeProduct and operationsEvery message has one named source of truth and one written stop rule
2. Create separate sending configurations for access-critical and lifecycle mailEngineeringPromotional sends cannot share a stream or sender identity with invitations
3. Pass the account ID, role and state as identifiers, not as copied contentEngineeringEach send carries an ID that the portal can check before delivery
4. Build secure links that check authorization at click timeEngineering and securityRevoked, expired and wrong-role links all show a neutral message
5. Connect suppression events for accepted, revoked, completed and expired statesEngineeringEach event stops matching queued and future sends
6. Run a parallel period when migrating, and compare send logsOperationsEvery notice sent by the old sender has a matching record in the new one
7. Log suppression decisions with a reasonSupport and engineeringSupport can explain any message that did not arrive
8. Read the vendor pricing page against your send volume and profile countFinance and operationsThe plan, billing view and volume band are recorded for the budget

How to choose

Start with the messages that gate access and treat them as a separate product. Invitations, sign-in notices, access changes and document alerts should go through a sender whose main job is reliable transactional delivery, with its own configuration and monitoring. Postmark and Resend are the usual first candidates for teams that want that separation with little overhead. Amazon SES is the candidate when cost per email matters more than managed features, and the team can run the surrounding system.

Then decide whether you need lifecycle behavior. If onboarding should branch by role or product event, a behavioral platform such as Customer.io is designed for that work. If billing events should start a flow, choose a platform whose billing integrations match your provider and keep access decisions in your application. If your portal users are also CRM contacts and you already run support in HubSpot, Service Hub brings the portal and the help desk into one record, although its per-seat model may not suit a large external audience.

Finally, price the decision on the right unit. Email-volume plans suit high-volume notices. Profile-based plans suit onboarding on a known user base. Per-seat plans suit staff-facing support. Mixing the units in one comparison is the most common reason a budget looks wrong after signing. Put each option on the unit its vendor uses, convert it to a monthly figure for your own numbers, and only then compare the totals.

Secure link rules

A portal link is an authorization decision that has been handed to an inbox. That makes its design more important than the template. Every link should have an expiry that matches the action it supports, a single purpose, and a check of the current authorization when the user clicks. Checking only at send time is the most common gap. A user who was authorized when the message was queued may have lost access an hour later, and the link should not open the document in that case.

Test the failure cases explicitly before launch: an expired link, a link reused after the action is complete, a link opened by someone signed in with a different role, and a link opened without a session. Each should show a neutral message and a route to support. A link that still works after revocation is a security finding, not a deliverability issue, and it should be handled with the same urgency as any other access defect.

Keep the link itself free of data. An identifier that resolves on the server is safer than a token that contains the account name, the document title or the role. If a token must carry information, keep it minimal and sign it, and make sure the server still re-checks the grant on every request.

Stopping stale messages

Stale messages are the most visible symptom of a weak portal email design. An invitation arrives after the user has already accepted through another route. An onboarding series keeps running after the account has closed. A document alert is sent for a file that has been withdrawn. Each of these undermines trust, and each has a simple cause: the sending system did not read the current access state before it sent.

Put the stop conditions in writing, implement them as events from the source of truth, and make them apply to queued sends as well as future ones. A send that was scheduled three days ago for a user who has since been removed must be cancelled, not delivered. Where a platform cannot cancel a queued send, the application should check state again at the moment of delivery, or the send should be scheduled with a short window.

Log every suppression with its reason. When support is asked why a message did not arrive, the log should answer the question in one line: the invitation was withdrawn on a given date, or the onboarding journey was completed by an event with a given identifier. A suppressed invitation for a revoked user is the system working as designed, and the log is the evidence.

Verdict

For most customer-portal SaaS teams, Postmark is the best first choice for access and document notices, because it is built for transactional delivery and keeps those messages apart from promotion. Resend suits teams whose notices come from application code. Amazon SES suits teams that want the lowest cost per email and can run the surrounding system. Customer.io suits portals that need onboarding branched by role and product event. HubSpot Service Hub, Intercom, Brevo and the other platforms here each fit a narrower set of needs. Choose on the message class first, then on the stop conditions and the unit of pricing. Before launch, verify that every link still respects current authorization at the moment it is clicked.

Keep service mail separate from promotion

Read the message-class guide before you decide which sender carries your access and account notices.

Read the message-class guide

Frequently asked questions

Which email platform should a customer-portal team start with?

For most portal products, start with a transactional sender that keeps access and document notices apart from marketing mail. Postmark's pricing page lists its Basic plan at $15 per month for 10,000 emails, which covers a small to mid-sized portal with room for invitations and document alerts. If your engineers already generate notices from application code, Resend is the other common starting point, with a free plan of 3,000 emails per month. Add a lifecycle platform only when you need journeys that depend on product or billing events.

Should a portal email contain the document or only a link to it?

Only a link. The email should say that something is ready, name the account it concerns, and send the user to an authenticated page where the detail lives. Attachments and inline summaries create copies that outlive revocation, sit in mail archives and can be forwarded. Keep the message small and let the portal decide what the signed-in user may see at the moment they open it.

How long should a portal link stay valid?

Long enough for the expected action and no longer. Invitation links often need a window of days, while a document-download link may need minutes or a single use. Whatever the window, check authorization again when the link is clicked. A link that was valid at send time but belongs to a user whose access has since been removed should show a neutral message and a route to support, never the content.

How do you stop invitations and onboarding emails after access changes?

Make the access system the authority and read it before every send. When an invitation is accepted, a role changes, access is revoked or onboarding is marked complete, the sending platform should stop the matching journey, including sends already queued. This needs a shared identifier between the portal and the sender, plus a log of suppression decisions so that support can explain why a message did not arrive. A welcome email reaching someone whose access was revoked last week is a defect, not a delay.

Can a billing-focused platform send portal notices as well?

It can for some notice types. Customer.io, for example, can trigger journeys from product and account events. Billing notices and portal access notices still have different sources of truth, so keep access decisions in your application and confirm during a pilot that the platform only sends what the portal has approved.

What will a portal send volume cost on the listed plans?

At about 10,000 emails per month, Postmark Basic is listed at $15 per month, Resend Pro at $20 per month for its 50,000-email plan and Mailgun Basic at $15 per month. At 50,000 emails, Postmark Basic is listed at $55 per month and Mailgun Foundation at $35 per month. Amazon SES is usage-based at $0.16 per 1,000 emails, which comes to $8 per month at 50,000 emails before the cost of the system you build around it. Check each pricing page before budgeting, because volume bands change.

Do we need a marketing platform at all for a portal product?

Not for access notices, which should never depend on campaign tooling. You may want one for product education, onboarding series and renewal reminders that are not tied to a single security event. Keep those sends on a separate stream with its own sender identity, so that a promotional complaint spike cannot delay an invitation or a document alert.