Siirry sisältöön

Call-Outs and Call-Ins

Tämä sisältö ei ole vielä saatavilla valitsemallasi kielellä.

Module 2 of 7 in the chapter Integration Patterns, chapter 7 of the Integration Architect course. Each module stands on its own. Previous: Patterns Are a Language · Next: Salesforce’s Six Patterns, in My Words

The question this module answers: What do “call-out” and “call-in” mean, and why does it matter which one an integration is?

Before the patterns, two more words, because Salesforce’s patterns are named with them. One of the six is even called Remote Call-In.

We’re a Salesforce-centric world in this course. I like to make all my Salesforce boxes blue, and everything else another color, and then the words follow from where Salesforce sits.

If Salesforce makes the call, that’s a call-out. The traffic is outbound.

If another system calls Salesforce, that’s a call-in. The traffic is inbound. In Salesforce’s words, the Remote Call-In pattern is data in Salesforce being “created, retrieved, updated, or deleted by a remote system” (Integration Patterns (opens in a new tab), Salesforce Architects, checked 2026-11-01).

So it’s all relative. From the other system’s side, the same call is its call-out. These are Salesforce-centric words, and you just want to watch the words you’re using. But with Salesforce at the center, a call-out is outbound and a call-in is inbound, and that’s how the exam uses them.

Here’s the part people miss. A call-in isn’t only a partner or a vendor’s system. It’s any external client, and that can easily be your own middleware.

The question is the one from chapter 5: who opens the connection? On a landscape, that’s where the arrow starts. So let’s read Steve Trucking’s landscape, every box in the place it had in chapter 5: first all of it, then only the call-ins, then only the call-outs.

Out and in, in context The Steve Trucking landscape from chapter 5, every box in its place: people on the left, Salesforce in the middle, the integration layer to its right, the other systems on the right, partners and providers at the bottom right. All the arrows are drawn as in chapter 5. Underneath: every arrow that touches Salesforce is a call-in or a call-out; next, the call-ins, then the call-outs. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.54.0", "built": "2026-10-30", "id": "DGM-INT-PT-03", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "system-landscape 0.13.0", "theme": "stevetecharc 1.4.0"} ABOVE: IDENTITY, APPEXCHANGE, WEB PEOPLE RIGHT: INTERNAL SYSTEMS BELOW: CUSTOMER CHANNELS BOTTOM RIGHT: PARTNERS AND PROVIDERS Dispatch coordinators 45, inside 9 partner DCs Delivery crews ~700 on 330 trucks Care and office staff 100: service, ops, finance Retail Partner users ~300 at 3 partners Recipients ~1 million a year Corporate IdP SSO for office staff only Retail Partner portal Tracking page INTEGRATION Snowflake status history, analytics FleetLink raw GPS stays here Finance ERP invoices partners, pays crews Photo storage 4–5 million a year, off core RouteDesk archive retired; 8 years of history Phone care agents Email email-to-case SMS and email provider day-before message, with a link Redrock REST API, webhooks Keystone CSV over SFTP Brightwave EDI through a third-party network Salesforce Field Service, one US org a link, no login office staff only calls cases in manifests in status out manifests in status out manifests in status out upserts, partner key status events status events latest position only delivery counts delivery counts photos, from the crews' app day-before, with a link Salesforce a community people identity, apps, web an internal system a customer channel the integration layer starts at the system that opens the connection; the label says what moves a shared certificate: trust, no direct call Every arrow that touches Salesforce is a call-in or a call-out. Next: the call-ins, then the call-outs. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

The landscape, in context.

The call-ins The same landscape, with only some arrows drawn. In amber, the call-ins: the integration layer to Salesforce, upserts with the partner key; and FleetLink to Salesforce, the latest position only. Also drawn, not in amber: Redrock, Keystone and Brightwave sending their manifests to the integration layer. Every other arrow is hidden, and every box keeps its place. Underneath: the partners' manifests reach Salesforce through our own integration layer: it's the layer that calls in; any external client counts, even your own middleware. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.54.0", "built": "2026-10-30", "id": "DGM-INT-PT-04", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "system-landscape 0.13.0", "theme": "stevetecharc 1.4.0"} ABOVE: IDENTITY, APPEXCHANGE, WEB PEOPLE RIGHT: INTERNAL SYSTEMS BELOW: CUSTOMER CHANNELS BOTTOM RIGHT: PARTNERS AND PROVIDERS Dispatch coordinators 45, inside 9 partner DCs Delivery crews ~700 on 330 trucks Care and office staff 100: service, ops, finance Retail Partner users ~300 at 3 partners Recipients ~1 million a year Corporate IdP SSO for office staff only Retail Partner portal Tracking page INTEGRATION Snowflake status history, analytics FleetLink raw GPS stays here Finance ERP invoices partners, pays crews Photo storage 4–5 million a year, off core RouteDesk archive retired; 8 years of history Phone care agents Email email-to-case SMS and email provider day-before message, with a link Redrock REST API, webhooks Keystone CSV over SFTP Brightwave EDI through a third-party network Salesforce Field Service, one US org manifests in manifests in manifests in upserts, partner key latest position only Salesforce a community people identity, apps, web an internal system a customer channel the integration layer starts at the system that opens the connection; the label says what moves call-ins: another system opens the connection to Salesforce The partners' manifests reach Salesforce through our own integration layer: it's the layer that calls in. Any external client counts, even your own middleware. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

The call-ins.

Two arrows come into Salesforce. FleetLink calls in with the latest truck positions. And look where the partners’ manifests come from. Redrock, Keystone and Brightwave don’t call Salesforce at all. They send their manifests to the integration layer, and the integration layer calls in, with the partner key. Our own middleware is the external client.

The call-outs The same landscape, with only the call-outs drawn, in amber: Salesforce to the integration layer, status events and delivery counts; Salesforce to photo storage, the photos from the crews' app; and Salesforce to the SMS and email provider, the day-before message with a link. Every other arrow is hidden, and every box keeps its place. Underneath: Salesforce starts each of these: the status events and the delivery counts to the integration layer, the photos to storage, and the day-before message to the provider. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.54.0", "built": "2026-10-30", "id": "DGM-INT-PT-05", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "system-landscape 0.13.0", "theme": "stevetecharc 1.4.0"} ABOVE: IDENTITY, APPEXCHANGE, WEB PEOPLE RIGHT: INTERNAL SYSTEMS BELOW: CUSTOMER CHANNELS BOTTOM RIGHT: PARTNERS AND PROVIDERS Dispatch coordinators 45, inside 9 partner DCs Delivery crews ~700 on 330 trucks Care and office staff 100: service, ops, finance Retail Partner users ~300 at 3 partners Recipients ~1 million a year Corporate IdP SSO for office staff only Retail Partner portal Tracking page INTEGRATION Snowflake status history, analytics FleetLink raw GPS stays here Finance ERP invoices partners, pays crews Photo storage 4–5 million a year, off core RouteDesk archive retired; 8 years of history Phone care agents Email email-to-case SMS and email provider day-before message, with a link Redrock REST API, webhooks Keystone CSV over SFTP Brightwave EDI through a third-party network Salesforce Field Service, one US org status events delivery counts photos, from the crews' app day-before, with a link Salesforce a community people identity, apps, web an internal system a customer channel the integration layer starts at the system that opens the connection; the label says what moves call-outs: Salesforce opens the connection Salesforce starts each of these: the status events and the delivery counts to the integration layer, the photos to storage, and the day-before message to the provider. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

The call-outs.

Four arrows go out, and Salesforce starts every one: the status events and the delivery counts to the integration layer, the photos to storage, and the day-before message to the provider. Notice the integration layer again. It’s on both pictures. It calls in with the manifests, and Salesforce calls out to it with the status events. The same system can be on both ends; each arrow has its own starter, its own credential and its own word.

This isn’t just vocabulary. Which one it is decides how it’s built, how it signs in, and which limits it meets.

A call-out or a call-in Two columns. A call-out, in blue, outbound, Salesforce is the client: built with Apex callouts, Flow HTTP callouts and External Services; the address and the secret in a named credential; limits counted per transaction; chapters 4 and 9. A call-in, in cyan, inbound, another system is the client, even your own middleware: built on Salesforce's APIs, REST, SOAP, Bulk and Pub/Sub; signs in through an External Client App, as an integration user; spends the org's 24-hour allocation, shared by every caller; chapters 8 and 12. Underneath: it's all relative: these are Salesforce-centric words; ask who opens the connection. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.54.0", "built": "2026-10-30", "id": "DGM-INT-PT-06", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "comparison/side-by-side 0.5.0", "theme": "stevetecharc 1.4.0"} A call-out outbound: Salesforce is the client Built with Apex callouts, Flow HTTP callouts and External Services The address and the secret in a named credential Limits counted per transaction Chapters 4 and 9 A call-in inbound: another system is the client, even your own middleware Built on Salesforce's APIs: REST, SOAP, Bulk and Pub/Sub Signs in through an External Client App, as an integration user Spends the org's 24-hour allocation, shared by every caller Chapters 8 and 12 It's all relative: these are Salesforce-centric words. Ask who opens the connection. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

A call-out or a call-in.

A call-out is Salesforce acting as the client. You’ve already built them: the named credential holds the address and the secret, and Flow, External Services or Apex makes the call. Its limits are counted per transaction, and chapter 9 gives them.

A call-in is another system acting as the client, against Salesforce’s APIs. It signs in through an External Client App, as its own integration user: Salesforce’s guide sends even the old SOAP login() call there, to “OAuth2.0 using External Client Apps”. And every call-in spends from the org’s daily allocation of inbound calls, the one every caller shares (chapter 6). Chapter 8 is Salesforce as the provider, and chapter 12 is how callers sign in.

So when someone says “it’s an integration with Redrock”, ask the next question: which way is the call? The answer sends you to a different set of tools, a different credential and a different limit.

  • For every arrow: whether it’s a call-out or a call-in, from who opens the connection, not which way the data goes.
  • For every call-out: the named credential, and the mechanism that makes the call.
  • For every call-in: the integration user and the External Client App it signs in with, and its share of the daily allocation, including your own middleware.

Beyond the exam: what AI changes. An agent can be either. When Salesforce’s own agent calls another system, that’s a call-out, through the same named credentials. When someone else’s agent calls Salesforce, that’s a call-in, and it needs its own integration user, its own app, and its own estimate against the allocation, because agents can call far more often than people expect. Draw the agent on the landscape, and ask the same question: who opens the connection?