Triggered Sends vs Journey API Entry Events

When another system needs to fire a Marketing Cloud message, you can call a triggered send, the Transactional Messaging API or a journey entry event. Here is how to choose.

Type
Article
Topic
Marketing Cloud
Reading time
5 min
Updated
Author
GeekMidst Team
Reviewed by
Site owner
Banner for the GeekMidst article “Triggered Sends vs Journey API Entry Events”, covering The three options and How they compare

An order is placed, a password reset is requested, a trial is about to expire. Another system needs Marketing Cloud Engagement to send something now. There are three common ways to do it, and they suit different jobs: a single fast transactional email, or the first step of a longer conversation. Picking the wrong one leads to slow receipts or journeys that are hard to maintain.

Comparison of Marketing Cloud triggered sends and Journey API entry events across best use, steps after the trigger, speed, payload, change management and where data lands
Use a transactional route for one message a customer is waiting for, and a Journey API entry event when the event starts a multi-step conversation. View full size

The three options

Classic triggered sends. A triggered send definition in Email Studio links one email to a send classification and a target. Your system calls the SOAP or REST API with the subscriber and attributes, and one email goes out. Triggered sends are long-established and widely used. Changes to the email need the definition to be paused and republished.

Transactional Messaging API. A newer REST API for single transactional emails (and SMS) built on send definitions you create through the API or as transactional send journeys in Journey Builder. It is designed for low-latency, one-to-one messages and is the route Salesforce points new transactional builds towards.

Journey API entry events. Your system posts an event to the journey events endpoint with a contact key, an event definition key and data. The contact enters a journey and moves through as many steps, waits and splits as you design. Entry is processed asynchronously, so it suits conversations rather than receipts that must arrive in seconds.

How they compare

Triggered sendTransactional Messaging APIJourney API entry event
Best forSingle transactional or simple triggered emailsSingle, time-critical transactional messagesMulti-step journeys started by a real-world event
Steps after the triggerOne emailOne messageWaits, splits, multiple channels
SpeedNear real timeDesigned for low latencyAsynchronous, less suited to receipts
PayloadSubscriber plus attributesRecipient plus attributesContact key plus data matching the event schema
Change managementPause, edit, republish the definitionUpdate the definition via API or journeyNew journey version
Where data landsTriggered send data extension if configuredSend logs and trackingEvent data extension and journey data

Before you start

All three use OAuth 2.0 access tokens from an installed package with API integration credentials. Your system requests a token from the authentication endpoint for your tenant (https://YOUR_SUBDOMAIN.auth.marketingcloudapis.com/v2/token), then calls the REST endpoint on the same subdomain. Give the integration only the permissions it needs, and store the client secret in your integration platform's secret store, not in code. The payloads below use sample keys and example.com addresses.

Example: entering a journey from an event

POST https://YOUR_SUBDOMAIN.rest.marketingcloudapis.com/interaction/v1/events

json
{
  "ContactKey": "CUST-000123",
  "EventDefinitionKey": "APIEvent-trial-expiry",
  "Data": {
    "SubscriberKey": "CUST-000123",
    "EmailAddress": "sam.sample@example.com",
    "PlanName": "Starter",
    "TrialEndDate": "2026-11-01"
  }
}
Journey API entry event. Data field names must match the event's entry data extension. A successful call returns an event instance ID.

Example: sending one transactional email

POST https://YOUR_SUBDOMAIN.rest.marketingcloudapis.com/messaging/v1/email/messages/{messageKey}, where messageKey is a unique ID you generate for this message so that it can be looked up later and not sent twice.

json
{
  "definitionKey": "order-confirmation",
  "recipient": {
    "contactKey": "CUST-000123",
    "to": "sam.sample@example.com",
    "attributes": {
      "OrderNumber": "SO-1001",
      "OrderTotal": "49.00"
    }
  }
}
Transactional Messaging API request. Attributes are available to the email's personalisation. Check the definition is active before going live.

Decision criteria

Ask these questions in order:

  1. Is it one message that must arrive quickly? Receipts, password resets and one-time codes belong on the Transactional Messaging API or an existing triggered send, not in a marketing journey.
  2. Does the event start a sequence? A trial expiry with reminders, a cart recovery with a follow-up, an onboarding series: use a journey entry event, designed as described in Designing a multi-step Journey Builder automation.
  3. Who will change it, and how often? Marketers can maintain journeys and their content more easily. Transactional definitions tend to be owned by a technical team and change rarely.
  4. Is the message commercial or transactional? Send classification affects which subscription rules apply. Do not route promotional content through a transactional path to bypass opt-outs.
  5. What does the calling system need back? The Transactional Messaging API lets you query a message's status by its key, which helps support teams answer "did the email go?".

Many teams use both: a transactional send for the instant receipt, and a journey event for the follow-up programme. See Transactional email via API for a reference design.

Errors, retries and monitoring

  • Authentication failures usually mean an expired token or the wrong subdomain. Cache tokens until shortly before expiry rather than requesting one per call.
  • Validation errors on journey events often come from field names or types that do not match the entry data extension, or an inactive journey version.
  • Retries need idempotency. Reuse the same messageKey for transactional retries; for journey events, rely on re-entry settings and a unique key in the entry data.
  • Silent drops happen when a subscriber is unsubscribed or held. Log the request and response on your side so you can reconcile with Marketing Cloud tracking.

The Salesforce API integration error handling guide covers retry patterns in more detail, and the Salesforce Developers documentation is the reference for current endpoints and limits.

Checklist

  • Message type classified as transactional or commercial
  • Route chosen per message, not per project
  • Installed package scoped to the minimum permissions
  • Payload schema documented and validated before calling
  • Idempotency keys defined for retries
  • Request and response logging in the calling system
  • Monitoring for failed and dropped sends agreed with an owner

Questions we hear

Are classic triggered sends being retired?
They are still in use and supported in many accounts, but for new transactional builds Salesforce generally points to the Transactional Messaging API. Check current guidance before starting a new build on either.
Can a journey send a receipt quickly enough?
Journeys are processed asynchronously and are not designed for time-critical messages. Use a transactional route for anything a customer is waiting for.
Do API-triggered contacts count towards my contact total?
Contacts created through sends and journey entry generally become part of your Marketing Cloud contacts. Check how your edition counts contacts with your Salesforce account team.
Can I send SMS the same way?
The Transactional Messaging API and journeys both support SMS where MobileConnect is provisioned. Consent and sender rules for SMS differ by country, so plan them separately.

Connecting a system to Marketing Cloud?

We can help you choose the right send route for each message, design the payloads and build the error handling around them.

Discuss your integration →

Tell us what you are trying to fix.

Share your Salesforce setup, goals and constraints. A practitioner reads every message and replies with questions, first thoughts or an honest view of whether you need outside help at all.

Talk to a Salesforce Expert
Book a Consultation