Part 23: Emailing in Salesforce
Email is one of the most heavily used features in any Salesforce org. Sales reps send follow-ups from records, service agents respond to cases, and admins automate notifications through flows and process builders. Yet email in Salesforce is also one of the most misunderstood areas — there are multiple template systems, several sending methods, strict daily limits, and deliverability settings that can silently block messages from ever reaching an inbox.
This post covers everything you need to know about emailing in Salesforce as an administrator: how to configure deliverability, how to build templates, the various ways to send emails, what the limits are, and when you should reach for an external tool instead.
Deliverability Settings in Salesforce
Before anyone in your org can send a single email, you need to make sure deliverability is properly configured. Salesforce controls outbound email at the org level, and a misconfigured setting here is the number one reason emails “aren’t working” in a sandbox or new org.
Access Level
Navigate to Setup → Email → Deliverability to find the core setting: Access to Send Email.
There are three options:
| Access Level | Behavior |
|---|---|
| No access | No outbound email is sent from the org at all. Common default in sandboxes. |
| System email only | Only system-generated emails are sent (password resets, workflow alerts, etc.). User-initiated emails are blocked. |
| All email | All outbound email is allowed — system emails, user-initiated emails, and automated emails. This is the required setting for production orgs. |
Sandbox gotcha: When you refresh or create a sandbox, Salesforce sets the access level to System email only by default. This is intentional — it prevents test automation from accidentally emailing real customers. You must manually change this to “All email” if you need to test email functionality in your sandbox.
Bounce Management
On the same Deliverability page, you will find the Activate bounce management checkbox. When enabled, Salesforce tracks hard bounces (permanent delivery failures) and marks those email addresses so future sends to them can be flagged. It is recommended to keep this enabled in production.
Email Security Compliance
Also on this page is the Enable compliance BCC emails option. When activated, you can specify a BCC email address that receives a copy of every outbound email sent from Salesforce. This is commonly used in regulated industries (finance, healthcare) where email archiving is a legal requirement. Every single outbound email — whether sent manually by a user or triggered by automation — gets a blind copy sent to the compliance address.
Email Relay
For organizations that need outbound email to route through their own mail servers (rather than Salesforce’s default mail servers), you can configure an Email Relay under Setup → Email → Email Relay. This is useful when:
- Your company requires all outbound email to pass through a corporate mail gateway for DLP (Data Loss Prevention) scanning.
- You need emails to show a specific sending IP for SPF/DKIM alignment.
- Compliance or security policies mandate that no email leaves the network without going through an internal mail server.
To configure email relay, you provide the SMTP host, port, and TLS settings for your mail server. You can also restrict which emails go through the relay by specifying criteria such as sender domain.
SPF, DKIM, and Sender Authentication
To improve deliverability and avoid spam folders, configure your DNS records:
- SPF (Sender Policy Framework): Add Salesforce’s include statement (
_spf.salesforce.com) to your domain’s SPF record so receiving mail servers know Salesforce is authorized to send on your behalf. - DKIM (DomainKeys Identified Mail): Navigate to Setup → Email → DKIM Keys to generate a DKIM key pair for your domain. Publish the public key as a DNS TXT record. This cryptographically signs outbound emails so recipients can verify they haven’t been tampered with.
- Organization-Wide Email Addresses: Under Setup → Email → Organization-Wide Addresses, you can define shared email addresses (like
support@yourcompany.comorsales@yourcompany.com) that users can select as the “From” address when sending email. This is critical for ensuring replies go to a shared inbox rather than an individual user’s address. Each org-wide address must be verified via a confirmation email before it can be used.
How to Create Email Templates
Salesforce has two distinct template systems, and understanding the difference is essential.
Classic Email Templates
Classic templates are the original template system. They are found under Setup → Email → Classic Email Templates (or through the personal settings of individual users). There are four subtypes:
| Template Type | Description | Best For |
|---|---|---|
| Text | Plain text only, no formatting. Supports merge fields. | Simple notifications, internal emails. |
| HTML (with Letterhead) | Uses a predefined letterhead for branding. Visual editor available. | Branded external emails with a consistent look. |
| Custom HTML | You write raw HTML. Full control over layout. | Developers who want pixel-perfect control. |
| Visualforce | Uses Visualforce markup. Can pull data from multiple objects, use conditional logic, and iterate over related records. | Complex templates that need dynamic data from child records, conditional sections, or calculations. |
Classic templates use merge field syntax with curly braces and object notation:
Dear {!Contact.FirstName},
Your case {!Case.CaseNumber} has been updated.
Status: {!Case.Status}
Thank you,
{!Organization.Name}
Merge fields reference the object and field API name. They work in text, HTML, and letterhead templates. Visualforce templates use standard Visualforce tags and expressions instead.
Creating a Classic template step by step:
- Go to Setup → Email → Classic Email Templates.
- Click New Template.
- Select the template type (Text, HTML with Letterhead, Custom HTML, or Visualforce).
- Choose a folder to store the template in. Public folders make templates available to all users; private folders are user-specific.
- Fill in the Email Subject — this also supports merge fields.
- Write the body content. For HTML templates, use the visual editor or paste your HTML.
- Optionally attach files to the template.
- Check Available for Use to make it active.
- Click Save.
Lightning Email Templates
Lightning email templates were introduced to provide a more modern authoring experience inside the Lightning interface. They are found in the Email Templates tab in the App Launcher (not in Setup).
Key differences from Classic templates:
| Feature | Classic Templates | Lightning Templates |
|---|---|---|
| Where to create | Setup or Personal Settings | Email Templates tab in App Launcher |
| Editor | Basic HTML editor or raw code | Rich text editor with drag-and-drop feel |
| Merge syntax | {!Object.Field} | Handlebars: {{{Recipient.FirstName}}} |
| Folder system | Classic email template folders | Salesforce folder sharing model (Enhanced Folder Sharing) |
| Related record merge | Limited (Visualforce required for complex scenarios) | Supports related record merge fields via the {{{RelatedTo.Field}}} syntax |
| Sharing | Folder-based access | Role/permission-based sharing through folders |
| Use in Flows | Yes (Send Email action) | Yes (Send Email action) |
| Use in Workflow Email Alerts | Yes | No — Workflow email alerts only support Classic templates |
Lightning templates use handlebars merge syntax:
Hi {{{Recipient.FirstName}}},
Your opportunity {{{Opportunity.Name}}} is currently at the
{{{Opportunity.StageName}}} stage with a close date of
{{{Opportunity.CloseDate}}}.
Best regards,
{{{Sender.Name}}}
The triple curly braces {{{ }}} are important — they render the merged value as unescaped HTML, which is the standard for Lightning templates.
Creating a Lightning template step by step:
- Open the App Launcher and search for “Email Templates.”
- Click New Email Template.
- Enter a Template Name and select a Folder (or create a new one).
- Choose the Related Entity Type — this determines which object’s merge fields are available (e.g., Contact, Lead, Opportunity).
- Write your Subject line using handlebars syntax if needed.
- Compose the Body using the rich text editor. Insert merge fields by clicking the merge field button in the toolbar.
- Click Save.
When to Use Which Template Type
- Lightning templates should be your default for any new template. They are easier to author, support modern merge syntax, and integrate well with the Lightning experience.
- Classic HTML/Letterhead templates are still necessary if you use Workflow Email Alerts (not yet compatible with Lightning templates) or need a very specific branded letterhead layout.
- Classic Visualforce templates are the right choice when you need to iterate over child records (like displaying all line items on a quote) or need conditional logic that cannot be expressed with simple merge fields.
- Classic Text templates are fine for simple, no-frills internal notifications where formatting does not matter.
The Many Salesforce Emailing Limits
Salesforce enforces strict daily limits on outbound email. These limits exist to protect the shared email infrastructure and prevent abuse. Understanding them is critical for planning.
Single Email Limits
Single emails are messages sent one at a time — from a record, via Apex SingleEmailMessage, or through the Salesforce email composer.
| Edition | Daily Single Email Limit |
|---|---|
| Developer Edition | 15 emails per day |
| Trial Orgs | 50 emails per day |
| All other editions (Enterprise, Unlimited, etc.) | 5,000 emails per day (per org) |
Important clarifications:
- The limit is per org, not per user.
- Each recipient counts as one email. An email sent to 3 recipients counts as 3 against the limit.
- Emails sent to internal users (users with a Salesforce license in your org) do not count against this limit.
- The limit resets at midnight GMT.
Mass Email Limits
Mass email is a specific feature for sending the same template to a list of contacts or leads. Limits are based on your edition:
| Edition | Daily Mass Email Limit |
|---|---|
| Professional Edition | 250 emails per day |
| Enterprise Edition | 1,000 emails per day |
| Unlimited / Performance Edition | 5,000 emails per day |
| Developer Edition | Not available (mass email is disabled) |
Workflow Email Alert Limits
Workflow email alerts (and Process Builder email alerts) have their own limit:
- 1,000 emails per standard Salesforce license per day, with an org-wide maximum of 2,000,000 emails per day (for orgs with enough licenses).
- Emails sent through workflow/process builder alerts to internal users also do not count against single email limits, but they do count against the workflow email limit.
Flow Email Limits
Emails sent via the Send Email action in Flow share the same single email limit (5,000 per day for most editions). There is no separate bucket for Flow emails.
Apex Email Limits
Apex code can send emails using Messaging.sendEmail(). These share the single email daily limit. Additionally:
- A single Apex transaction can send a maximum of 10
SingleEmailMessagecalls. - A single Apex transaction can send a maximum of 10
MassEmailMessagecalls. - The
Messaging.reserveSingleEmailCapacity(count)andMessaging.reserveMassEmailCapacity(count)methods allow you to check remaining capacity before attempting to send, which is a best practice for Apex code.
Summary Table of Limits
| Sending Method | Daily Limit (Enterprise+) | Counts Against |
|---|---|---|
| Single email (manual or Apex) | 5,000 / org / day | Single email limit |
| Mass email | 1,000–5,000 depending on edition | Mass email limit (separate) |
| Workflow/Process Builder email alert | 1,000 per license (max 2M org-wide) | Workflow email limit (separate) |
| Flow Send Email action | 5,000 / org / day | Single email limit |
Apex SingleEmailMessage | 5,000 / org / day; 10 per transaction | Single email limit |
When to Use Another Tool to Send Emails
Salesforce’s native email capabilities are designed for transactional, one-to-one, or small-batch emails. They are not designed for large-scale marketing campaigns, complex drip sequences, or high-volume automated outreach. Here is when you should reach for an external tool:
You Need Marketing Automation
If you need email nurture campaigns, A/B testing, sophisticated segmentation, landing pages, or detailed engagement analytics (open rates, click maps, heat maps), you need a marketing platform:
-
Salesforce Marketing Cloud Account Engagement (formerly Pardot): Best for B2B organizations already invested in the Salesforce ecosystem. It integrates natively with Salesforce, syncs lead and contact data bidirectionally, and supports lead scoring, drip campaigns, and engagement tracking. Pardot has its own sending infrastructure and is not subject to Salesforce’s native email limits.
-
Salesforce Marketing Cloud: Best for B2C organizations with high-volume sending needs (millions of emails). It supports sophisticated journey building, dynamic content personalization, SMS, push notifications, and advertising. It is a separate platform with its own data model (Data Extensions rather than standard Salesforce objects).
-
Third-party tools (SendGrid, Mailchimp, HubSpot, etc.): If you are not fully committed to the Salesforce marketing stack, third-party tools can integrate with Salesforce via APIs, AppExchange packages, or middleware like MuleSoft or Zapier. SendGrid is a popular choice for transactional email at scale — it provides a robust API, handles deliverability at volume, and offers detailed delivery analytics.
You Are Hitting Native Limits
If your org regularly approaches the 5,000 single email daily limit, that is a clear sign you need an external sending platform. Salesforce is not meant to be your bulk email engine.
You Need Advanced Tracking
Salesforce provides basic email tracking (open tracking and link click tracking when HTML email tracking is enabled), but it does not provide the depth of analytics that dedicated email platforms offer — things like click heatmaps, device breakdowns, inbox placement rates, or spam score analysis.
You Need Sophisticated Personalization
Beyond simple merge fields, if you need dynamic content blocks, conditional sections based on complex logic, recommendation engines, or AI-driven send-time optimization, you need a tool built for that purpose.
How to View Email Logs
Email Log Request
Salesforce provides email logs for troubleshooting delivery issues. Navigate to Setup → Email → Email Log Files and click Request an Email Log. You specify a date range (up to 30 days in the past and up to 7 days into the future for scheduled sends), and Salesforce generates a CSV file that is emailed to you when ready.
The email log contains information about each outbound message:
- Date and time sent
- Sender address
- Recipient address
- Message size
- Delivery status
This is invaluable for debugging when users report that an email “never arrived.” You can verify whether Salesforce actually attempted to send it, and whether it was accepted or bounced.
Email Tracking in the Activity Timeline
When Enhanced Email is enabled (more on this below) and Email Tracking is turned on under Setup → Email → Email Tracking, Salesforce tracks opens and link clicks for HTML emails sent from records. Users can see this tracking data directly on the activity timeline of the related record — a small indicator shows whether the recipient opened the email and when.
Note that email open tracking relies on a tracking pixel, which can be blocked by many email clients. Open tracking data should be treated as directional, not definitive.
Einstein Activity Capture
If your org uses Einstein Activity Capture (EAC), emails sent and received through connected email accounts (Gmail, Outlook) are automatically captured and displayed on related Salesforce records. EAC does not count against email limits because the emails are sent through the user’s native email client, not through Salesforce’s infrastructure. However, EAC emails are stored differently (they are not full EmailMessage records by default) and have their own data retention policies.
How to Send Emails from a Record
The most common way users send email in Salesforce is directly from a record — a Contact, Lead, Case, or any object with the email action enabled.
Steps to Send Email from a Record
- Navigate to the record (e.g., a Contact record).
- In the Activity section (or the Activity Timeline in Lightning), click the Email tab or the Email action button.
- The email composer opens. The “To” field is pre-populated with the record’s email address.
- Select a From address — this defaults to the user’s email but can be changed to an Organization-Wide Email Address if one is configured.
- Optionally select an Email Template by clicking the template icon. You can choose from Lightning templates or Classic templates.
- Write or modify the email body. Merge fields from the template will be resolved with the record’s data.
- Add attachments if needed — you can attach files from your computer, Salesforce Files, or Google Drive (if integrated).
- Optionally enable BCC to yourself or others.
- Click Send.
Enhanced Email and the EmailMessage Object
When Enhanced Email is enabled (Setup → Email → Enhanced Email), emails sent from records are stored as EmailMessage records rather than Task records. This is a significant distinction:
| Feature | Classic Email (Task) | Enhanced Email (EmailMessage) |
|---|---|---|
| Storage object | Task (with Type = Email) | EmailMessage |
| Email-specific fields | Limited — subject, description | Full email fields: To, CC, BCC, From, HTML Body, Text Body, Headers, Message-ID |
| Threading | Not supported | Supports email threading (replies are linked) |
| Attachments | Attached to Task | Linked via ContentDocumentLink |
| Tracking | Basic | Open tracking, click tracking |
| Relationship to Case | Loosely related | Natively related via ParentId on Case |
| Reply functionality | Not available | Users can reply directly from the email thread |
Enhanced Email is enabled by default in most modern orgs and is strongly recommended. It makes the email experience in Salesforce much richer, especially for Service Cloud users handling Cases.
How to Send List Emails
List Emails allow you to send a single template to a list of contacts or leads using a List View, with each email personalized via merge fields.
Steps to Send a List Email
- Navigate to the Contacts or Leads tab.
- Select a List View that contains the recipients you want to email (or create a new filtered list view).
- Select the checkbox next to the records you want to email (or use “Select All” if the list is small enough).
- Click the Send List Email button in the toolbar.
- Choose a From address.
- Select an Email Template (List Emails require a template — you cannot compose freeform).
- Review the recipient list. Salesforce will flag any records that are missing email addresses or have opted out.
- Click Send.
List Email Considerations
- List Emails count against the mass email daily limit, not the single email limit.
- Each recipient receives an individual, personalized email — they cannot see other recipients.
- You cannot add attachments to List Emails beyond what is included in the template.
- List Emails are logged on each recipient’s record in the activity timeline.
- The maximum number of recipients per List Email send is 200 in a single batch.
- List Emails respect the Email Opt Out field — records with this field checked are automatically excluded.
How to Send Mass Emails
Mass Email is a feature found under the Mass Email section in the Contacts or Leads tab (Classic) or through the App Launcher in Lightning.
Steps to Send Mass Email
- Navigate to Contacts or Leads.
- In Classic: Click Mass Email Contacts or Mass Email Leads in the sidebar. In Lightning: Use the List Email functionality described above or navigate to the Mass Email wizard if available.
- Select a List View to define your recipient set, or use predefined criteria.
- Choose the recipients from the filtered list.
- Select an Email Template (Classic templates only for the Classic mass email wizard).
- Optionally configure processing options:
- Store an activity for each message — logs the email on each recipient’s record.
- Use my signature — appends the sender’s email signature.
- Click Send.
Mass Email vs. List Email
| Feature | Mass Email (Classic) | List Email (Lightning) |
|---|---|---|
| Interface | Classic wizard-style interface | Lightning list view action |
| Template support | Classic templates only | Lightning and Classic templates |
| Maximum recipients per send | Up to the mass email daily limit | 200 per batch |
| Tracking | Basic activity logging | Activity timeline with enhanced tracking |
| Availability | Setup-dependent, may require Classic | Available in Lightning Experience |
For most organizations using Lightning Experience, List Email is the recommended approach over the older Mass Email wizard.
How to Send Flow Emails
Salesforce Flows can send emails using the Send Email core action. This is one of the most powerful and flexible ways to automate email sending.
Using the Send Email Action in Flow
- Open Flow Builder (Setup → Flows → New Flow or edit an existing Flow).
- Add an Action element to your Flow.
- Search for and select the Send Email action.
- Configure the action inputs:
| Input | Description |
|---|---|
| Recipient Email Addresses | A comma-separated list of email addresses, or a single email variable. |
| Recipient ID | The record ID of a User, Contact, or Lead. If provided, the email is logged on their record. |
| Email Template ID | The ID of a Classic or Lightning email template to use. |
| Email Template Name | Alternatively, reference a template by its developer name. |
| Related Record ID | The record ID to use for merge field resolution (e.g., an Opportunity ID so opportunity merge fields are populated). |
| Subject | The email subject line (overrides template subject if both are provided). |
| Body | Plain text or HTML body (overrides template body if both are provided). |
| Sender Address | An Organization-Wide Email Address to use as the “From” address. |
- Save and activate the Flow.
Flow Email Example: Automated Follow-Up
Imagine you want to send a follow-up email 3 days after an Opportunity is marked “Closed Won”:
- Create a Schedule-Triggered Flow that runs on the Opportunity object.
- Set the start conditions:
StageName = Closed Won. - Set the schedule: 3 days after the record is created or updated (or use a Scheduled Path).
- Add a Get Records element to retrieve the related Contact (the Opportunity Contact Role or the primary contact).
- Add a Send Email action:
- Recipient ID: The Contact’s ID.
- Email Template Name:
Closed_Won_Follow_Up - Related Record ID: The Opportunity’s ID (so opportunity merge fields resolve).
- Save and activate.
Flow Email Best Practices
- Always use Recipient ID when possible rather than just an email address — this ensures the email is logged on the recipient’s record.
- Use fault paths on the Send Email action to handle failures gracefully (e.g., log an error, notify an admin).
- Be mindful that Flow emails count against the single email daily limit (5,000). High-volume scheduled flows can exhaust this limit quickly.
- Test Flow emails in a sandbox with deliverability set to “All email” to verify formatting and merge field resolution.
The EmailMessage Object
The EmailMessage object is the standard Salesforce object that stores emails sent and received within Salesforce when Enhanced Email is enabled. Understanding its schema is important for reporting, automation, and integration.
Key Fields on EmailMessage
| Field API Name | Type | Description |
|---|---|---|
Id | ID | The unique record identifier. |
ParentId | Reference | The ID of the parent record (typically a Case). |
RelatedToId | Reference | The ID of the related record (Contact, Lead, Opportunity, etc.). |
ActivityId | Reference | The related Activity (Task) record ID, if applicable. |
FromAddress | String | The sender’s email address. |
FromName | String | The sender’s display name. |
ToAddress | String | Comma-separated list of “To” recipients. |
CcAddress | String | Comma-separated list of “CC” recipients. |
BccAddress | String | Comma-separated list of “BCC” recipients. |
Subject | String | The email subject line. |
TextBody | String | The plain text version of the email body. |
HtmlBody | String | The HTML version of the email body. |
Status | Picklist | Values include: 0 (New), 1 (Read), 2 (Replied), 3 (Sent), 4 (Forwarded), 5 (Draft). |
Incoming | Boolean | true if the email was received (inbound), false if it was sent (outbound). |
HasAttachment | Boolean | Whether the email has attachments. |
MessageDate | DateTime | The date and time the email was sent or received. |
IsExternallyVisible | Boolean | Whether the email is visible in communities/portals. |
MessageIdentifier | String | The email’s Message-ID header, used for threading. |
ThreadIdentifier | String | Thread identifier for grouping related emails. |
Querying EmailMessage Records
You can query EmailMessage records using SOQL:
SELECT Id, Subject, FromAddress, ToAddress, Status, MessageDate, Incoming
FROM EmailMessage
WHERE ParentId = '500XXXXXXXXXXXXXXX'
ORDER BY MessageDate DESC
This is useful for:
- Building custom reports on email activity related to Cases.
- Creating automation that reacts to inbound emails (e.g., auto-assigning a Case when a customer replies).
- Integrating with external systems that need to read email history from Salesforce.
EmailMessage and Email-to-Case
When Email-to-Case is configured, inbound emails to your support address automatically create or update Case records. The inbound email is stored as an EmailMessage record with Incoming = true and ParentId set to the Case. Replies sent by agents from the Case are stored as EmailMessage records with Incoming = false. This creates a full email thread visible on the Case record.
Section Notes
Email Deliverability Testing
Before going live with any email configuration, always test thoroughly:
- Sandbox testing: Set deliverability to “All email” in your sandbox. Send test emails to yourself and colleagues. Verify merge fields resolve, formatting looks correct, and the From address is what you expect.
- Spam testing: Use tools like Mail Tester (mail-tester.com) to check your emails for spam indicators. Send a test email from Salesforce to the address provided by the tool and review the score.
- SPF/DKIM verification: Use MXToolbox or similar DNS lookup tools to verify your SPF and DKIM records are correctly published and passing authentication checks.
- Mobile rendering: Preview your HTML email templates on mobile devices. Many email clients render HTML differently, and a template that looks perfect on desktop can be broken on mobile.
Organization-Wide Email Addresses — When and Why
Organization-wide addresses are essential in several scenarios:
- Support teams: All case emails should come from
support@yourcompany.com, not individual agent addresses, so customers reply to a shared inbox. - Sales teams: Outbound emails may need to come from
sales@yourcompany.comfor brand consistency. - No-reply addresses: Automated notifications often use
noreply@yourcompany.comto discourage replies to system-generated messages. - Profile-based control: You can restrict which profiles have access to which organization-wide addresses, ensuring that only the support team can send from the support address.
Common Integration Scenarios
| Scenario | Recommended Tool | Integration Approach |
|---|---|---|
| B2B marketing campaigns and lead nurturing | Marketing Cloud Account Engagement (Pardot) | Native Salesforce connector; syncs Leads, Contacts, and Campaigns bidirectionally. |
| B2C high-volume campaigns (millions of sends) | Marketing Cloud | Marketing Cloud Connect; uses Data Extensions and Journey Builder. |
| Transactional email at scale (order confirmations, shipping notifications) | SendGrid | REST API integration via Apex callouts or middleware. |
| Simple marketing newsletters for small orgs | Mailchimp | AppExchange connector syncs Contacts and Campaign data. |
| Full inbound and outbound marketing with CRM | HubSpot | Native HubSpot-Salesforce connector syncs Contacts, Companies, and Deals. |
Key Takeaways
- Always check deliverability settings first — especially in sandboxes. A “No access” or “System email only” setting will silently block user-initiated and automated emails.
- Use Lightning templates for new work unless you specifically need Workflow Email Alert compatibility or Visualforce-level complexity.
- Know your limits — the 5,000 single email daily limit is org-wide and shared across manual sends, Flow emails, and Apex emails. Plan accordingly.
- Enable Enhanced Email to get proper EmailMessage records instead of Task-based email logging. This is essential for Service Cloud and any org that needs email threading.
- Configure SPF and DKIM for your sending domain to maximize deliverability and avoid spam folders.
- Use Organization-Wide Email Addresses for any team-based or branded sending scenarios.
- Reach for external tools when you need marketing automation, high-volume sending, or advanced analytics — Salesforce’s native email is for transactional and one-to-one communication.
Next up — Part 24: Flows in Salesforce, where we dive into Salesforce’s most powerful automation tool. We will cover the different Flow types (screen flows, record-triggered flows, scheduled flows, autolaunched flows), Flow Builder fundamentals, working with variables and collections, decision elements, loops, subflows, and best practices for building scalable, maintainable automation.