Streamscript connects APIs with data using formula-like statements and actions. It runs inside Flow so it benefits from data security settings, flow versioning and flow tests. Streamscript enables flows to perform HTTP callouts and respond to webhooks, for example:
# Streamscript $http = GET 'api.exchangerate.host/EUR' $result = JSON-Decode $http.body return $result.rates.USDTry
Save the flow, then click debug. That's it! You just integrated live exchange rates into your flow. You'll need to add a Remote Site Setting for the example. Then use the editor in flow builder to test and iterate your logic.
Alternatively, install from the Salesforce AppExchange (listing URL)
Q: Where is the package?
Here is the install URL:
Q: I'm not a coder, can I use Streamscript?
Yes. If you've used formulas, it will feel familiar. This templates video may help you get started.
Q: Doesn't this overlap Salesforce functionality?
Yes. Platform aspects like HTTP callouts have changed since the first release of Streams. We recommend using declarative features where possible. Check out these alternatives, each with a unique approach to bring a specific area of focus into Flow:
- Apex actions - Chris, Professor Flow
- Slack integration - Jack Pond, UnofficialSF
- Callouts (Beta) Spring '23 - Joseph Thomas, P&N Bank
- Mini Postman with Invocable Callout - Munawir Rahman at Gojek
Q: I don't see the point. Can you explain where script is used?
Script solves immediate needs (like webhooks) without waiting for declarative tools. Flow is for business processes and users may choose the approach best suited to their business. The right tool for the job may be config or code or a combination of both.
Q: Functions wrap logic in general form. Can I call functions in other scripts?
No. Scripts are self-contained and don't reference external dependencies. This ensures a script can be versioned within flow and deployed to any environment as a single logical unit.
Q: How can I send auth headers in my HTTP callout?
Set up a Named Credential then use as follows:
Avoid handling session ids, usernames, passwords or authentication tokens within your logic.
Q: Is the package security reviewed?
Yes. Latest details here. Streams is published on the AppExchange with Aloha status from Salesforce. At install you can click 'View Components' to verify it contains no integrations.
Q: Is this related to OmniScript, Mule scripts, or AMPscript?
No. Those are external hosted environments. Streamscript only runs in native Salesforce flows.
Q: How do I access the results of script in subsequent steps?
One-line scripts automatically return the result of the expression. Streamscript will set the output variable (num, bool, text, list, record, records) according to the result data type.
Multi-line scripts use the return keyword. For example:
return $num or
Note: when returning SObjects, the variable name must be the type, eg:
Q: Does it support bulkification?
Yes. Best practice for record-triggered flows is to use the Bulk directive. In bulk mode, Streamscript will run once instead of many times. Inputs or merge fields will contain lists instead of a single value. Outputs or return values will expect lists instead of a single value.
Q: Is this free? What do you gain in return?
Yes. In return we hope you'll consider us for your next project.
Q: Can I offer script capabilities in my company's package?
Yes. Contact us and we will assist.
Q: How do I get syntax highlighting and autocompletions?
We use this optional Chrome Extension in our videos.
Q: How do I suggest an idea for Streamscript?
Thanks for thinking of us! Please read our policy first. It protects both you and us from any potential legal issues that may arise if we were already working on a similar idea.
Q: Can I post on your blog?
Sorry, we're not currently looking for Streamscript bloggers. We celebrate success stories in our occasional newsletter, so please don't contact us to "blog about X" in exchange for $.
Getting started with Streamscript
Install from the Salesforce AppExchange
Direct install URL: