diff --git a/_packages/salesforce-bot.md b/_packages/salesforce-bot.md
deleted file mode 100644
index 2d9fef83..00000000
--- a/_packages/salesforce-bot.md
+++ /dev/null
@@ -1,466 +0,0 @@
----
-title: Salesforce Bot
-excerpt: A bot demonstrating integration between Cerb and Salesforce.
-layout: integration
-topic: Packages
-permalink: /packages/salesforce-bot/
-jumbotron:
- title: Salesforce Bot
- tagline: ""
- breadcrumbs:
- -
- label: Resources »
- url: /resources/
- -
- label: Packages »
- url: /resources/packages/
----
-
-* TOC
-{:toc}
-
-# Introduction
-
-This package creates **Salesforce Bot** for demonstrating integration between Cerb and the [Salesforce API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/).
-
-
-

-
-
-# Configure the Salesforce service
-
-If you haven't already, follow [these instructions](/solutions/integrations/salesforce/) to configure the Salesforce service and add your first connected account.
-
-# Import the package
-
-Navigate to **Setup >> Packages >> Import**.
-
-Paste the following package into the large text box:
-
-{% highlight json %}
-{% raw %}
-{
- "package": {
- "name": "Salesforce Bot",
- "cerb_version": "9.1.0",
- "revision": 1,
- "requires": {
- "cerb_version": "9.1.0"
- },
- "configure": {
- "prompts": [
- {
- "type": "chooser",
- "label": "Salesforce Account:",
- "key": "salesforce_account_id",
- "params": {
- "context": "cerberusweb.contexts.connected_account",
- "single": true,
- "query": "name:salesforce"
- }
- },
- {
- "type": "text",
- "label": "Salesforce Instance:",
- "key": "salesforce_instance",
- "params": {
- "placeholder": "(e.g. na55)"
- }
- }
- ],
- "placeholders": [
-
- ]
- }
- },
- "bots": [
- {
- "uid": "bot_38",
- "name": "Salesforce Bot",
- "owner": {
- "context": "cerberusweb.contexts.app",
- "id": 0
- },
- "is_disabled": false,
- "params": {
- "config": {
- "instance": "{{{salesforce_instance}}}",
- "api_version": "v40.0"
- },
- "events": {
- "mode": "all",
- "items": [
-
- ]
- },
- "actions": {
- "mode": "all",
- "items": [
-
- ]
- }
- },
- "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAAk1BMVEX///8AnNsAmtr6/f/+/v/3/P4AmdoRod1WvufP7fgzsOIZpN7o9vzT7vmQ0+9AsuMyreEhqN8LntwFndz0+/3u+f3r9/zk9fur3vOh2vKb2PGAzO13yOtjwelSuuYpqeDg8/vb8frI6vfB5/az4fSW1vCDzu19y+xbvudIt+S+5fa24/Wz3/SY1fCI0e5EteQ7sOLXaIOzAAACLklEQVRo3u3X2XKqQBRG4fU3BGI0jpknMw9nfv+nO21aaKNgBG2qkuK7EKGRJbu0Smm1Wq1W62t7ljOOCeRNHxBAV9bazEgzN9SnIoZMvIObfFWJsrdAdalKYRmtqD61qdYAFaOSU9VDFaorfMO64l0/TZLkKg4U0fK3K0CjyFnIiEeBFyl8RgE0ElEjETUSUSOR1/ARq5GIvk9ETUcOVKws39n4jfXwqkVOAKPN1I5UmW9Rw5Rfza/SqRFRJna7Y2YO55FbrEl2/nwzdRtbjbjHVruLq6uRSBnDsczdo8RIBlzkArIdoxRpCMOhIHLrkX22L8HIGCN40xWsRJS7ZKzchIGykK30/ewge5gQ28ipH6yxB6TVyNIAp35pfx7Zs0DAcR4x4J7aiPx1799PjpcjWmSwUg3g7oePONIJ5DeREBVFIpx1Eesa3CuSPCIPzu3Cs6TiO7lgoEVlP6NLI/uy6OkCk131J/088kduWxBZPvAQg06h02MeMViuFj366hCOcJ8uP5bbbF5rIjqcH3rC2vMzIa+l/oPkTskiit3+COtMmb/AWNWBNoel6m64llchEuxF53UjqoAZhfXQRIQGIjQQiQhfOSN85BfhI9/kX8MRhK7EWCEryTGFOtrebz7T09bYQMiG9y9kw7sM2/Be0kn3CVUTU4c+cd5Z+tqFqLjppkm3zxZSrXPCbmgdCF+B8BUIX4HwFXbtMHxiNUMw0eBg5ppWq9VqfVH/Ab6NHLHV3NfdAAAAAElFTkSuQmCC",
- "behaviors": [
- {
- "uid": "behavior_214",
- "title": "Create account record",
- "is_disabled": false,
- "is_private": true,
- "priority": 50,
- "event": {
- "key": "event.macro.bot",
- "label": "Custom behavior on bot"
- },
- "variables": {
- "var_name": {
- "key": "var_name",
- "label": "Name",
- "type": "S",
- "is_private": "0",
- "params": {
- "widget": "single"
- }
- }
- },
- "nodes": [
- {
- "type": "action",
- "title": "Execute HTTP request",
- "status": "live",
- "params": {
- "actions": [
- {
- "action": "core.va.action.http_request",
- "http_verb": "post",
- "http_url": "{# See: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_create.htm #}\r\nhttps://{{behavior_bot_config.instance}}.salesforce.com/services/data/{{behavior_bot_config.api_version}}/sobjects/Account/",
- "http_headers": "Content-Type: application/json",
- "http_body": "{% set json = {\r\n\t\"name\": var_name\r\n} %}\r\n{{json|json_encode|json_pretty}}",
- "auth": "connected_account",
- "auth_connected_account_id": "{{{salesforce_account_id}}}",
- "options": {
- "raw_response_body": "1"
- },
- "run_in_simulator": "1",
- "response_placeholder": "_http_response"
- },
- {
- "action": "_set_custom_var",
- "value": "{{_http_response.body|json_pretty}}",
- "format": "json",
- "is_simulator_only": "0",
- "var": "response_json"
- }
- ]
- }
- }
- ]
- },
- {
- "uid": "behavior_210",
- "title": "Get account record",
- "is_disabled": false,
- "is_private": true,
- "priority": 50,
- "event": {
- "key": "event.macro.bot",
- "label": "Custom behavior on bot"
- },
- "variables": {
- "var_account_id": {
- "key": "var_account_id",
- "label": "Account ID",
- "type": "S",
- "is_private": "0",
- "params": {
- "widget": "single"
- }
- }
- },
- "nodes": [
- {
- "type": "action",
- "title": "Call to Salesforce API",
- "status": "live",
- "params": {
- "actions": [
- {
- "action": "_set_custom_var",
- "value": "",
- "format": "",
- "is_simulator_only": "0",
- "var": "fields"
- },
- {
- "action": "core.va.action.http_request",
- "http_verb": "get",
- "http_url": "https://{{behavior_bot_config.instance}}.salesforce.com/services/data/{{behavior_bot_config.api_version}}/sobjects/Account/{{var_account_id}}?fields=Id,Name",
- "http_headers": "",
- "http_body": "",
- "auth": "connected_account",
- "auth_connected_account_id": "{{{salesforce_account_id}}}",
- "options": {
- "raw_response_body": "1"
- },
- "run_in_simulator": "1",
- "response_placeholder": "_http_response"
- },
- {
- "action": "_set_custom_var",
- "value": "{{_http_response.body|json_pretty}}",
- "format": "json",
- "is_simulator_only": "0",
- "var": "response_json"
- }
- ]
- }
- }
- ]
- },
- {
- "uid": "behavior_211",
- "title": "Get Salesforce versions info",
- "is_disabled": false,
- "is_private": true,
- "priority": 50,
- "event": {
- "key": "event.macro.bot",
- "label": "Custom behavior on bot"
- },
- "nodes": [
- {
- "type": "action",
- "title": "Call to Salesforce API",
- "status": "live",
- "params": {
- "actions": [
- {
- "action": "core.va.action.http_request",
- "http_verb": "get",
- "http_url": "{# See: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_versions.htm #}\r\nhttps://{{behavior_bot_config.instance}}.salesforce.com/services/data",
- "http_headers": "",
- "http_body": "",
- "auth": "connected_account",
- "auth_connected_account_id": "{{{salesforce_account_id}}}",
- "options": {
- "raw_response_body": "1"
- },
- "run_in_simulator": "1",
- "response_placeholder": "_http_response"
- },
- {
- "action": "_set_custom_var",
- "value": "{{_http_response.body|json_pretty}}",
- "format": "json",
- "is_simulator_only": "0",
- "var": "response_json"
- }
- ]
- }
- }
- ]
- },
- {
- "uid": "behavior_213",
- "title": "List account records",
- "is_disabled": false,
- "is_private": true,
- "priority": 50,
- "event": {
- "key": "event.macro.bot",
- "label": "Custom behavior on bot"
- },
- "nodes": [
- {
- "type": "action",
- "title": "Execute HTTP request",
- "status": "live",
- "params": {
- "actions": [
- {
- "action": "_set_custom_var",
- "value": "SELECT id, name FROM Account",
- "format": "",
- "is_simulator_only": "0",
- "var": "query"
- },
- {
- "action": "core.va.action.http_request",
- "http_verb": "get",
- "http_url": "{# See: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm #}\r\nhttps://{{behavior_bot_config.instance}}.salesforce.com/services/data/{{behavior_bot_config.api_version}}/query/?q={{query|url_encode}}",
- "http_headers": "",
- "http_body": "",
- "auth": "connected_account",
- "auth_connected_account_id": "{{{salesforce_account_id}}}",
- "options": {
- "raw_response_body": "1"
- },
- "run_in_simulator": "1",
- "response_placeholder": "_http_response"
- },
- {
- "action": "_set_custom_var",
- "value": "{{_http_response.body|json_pretty}}",
- "format": "json",
- "is_simulator_only": "0",
- "var": "response_json"
- }
- ]
- }
- }
- ]
- },
- {
- "uid": "behavior_212",
- "title": "List resources",
- "is_disabled": false,
- "is_private": true,
- "priority": 50,
- "event": {
- "key": "event.macro.bot",
- "label": "Custom behavior on bot"
- },
- "nodes": [
- {
- "type": "action",
- "title": "Call to Salesforce API",
- "status": "live",
- "params": {
- "actions": [
- {
- "action": "core.va.action.http_request",
- "http_verb": "get",
- "http_url": "{# See: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_discoveryresource.htm #}\r\nhttps://{{behavior_bot_config.instance}}.salesforce.com/services/data/v40.0/",
- "http_headers": "",
- "http_body": "",
- "auth": "connected_account",
- "auth_connected_account_id": "{{{salesforce_account_id}}}",
- "options": {
- "raw_response_body": "1"
- },
- "run_in_simulator": "1",
- "response_placeholder": "_http_response"
- },
- {
- "action": "_set_custom_var",
- "value": "{{_http_response.body|json_pretty}}",
- "format": "json",
- "is_simulator_only": "0",
- "var": "response_json"
- }
- ]
- }
- }
- ]
- },
- {
- "uid": "behavior_215",
- "title": "Update account record",
- "is_disabled": false,
- "is_private": true,
- "priority": 50,
- "event": {
- "key": "event.macro.bot",
- "label": "Custom behavior on bot"
- },
- "variables": {
- "var_id": {
- "key": "var_id",
- "label": "ID",
- "type": "S",
- "is_private": "0",
- "params": {
- "widget": "single"
- }
- },
- "var_fields_json": {
- "key": "var_fields_json",
- "label": "Fields JSON",
- "type": "S",
- "is_private": "0",
- "params": {
- "widget": "multiple"
- }
- }
- },
- "nodes": [
- {
- "type": "action",
- "title": "Execute HTTP request",
- "status": "live",
- "params": {
- "actions": [
- {
- "action": "core.va.action.http_request",
- "http_verb": "patch",
- "http_url": "{# See: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_update_fields.htm #}\r\nhttps://{{behavior_bot_config.instance}}.salesforce.com/services/data/{{behavior_bot_config.api_version}}/sobjects/Account/{{var_id}}",
- "http_headers": "Content-Type: application/json",
- "http_body": "{{var_fields_json|json_pretty}}",
- "auth": "connected_account",
- "auth_connected_account_id": "{{{salesforce_account_id}}}",
- "options": {
- "raw_response_body": "1"
- },
- "run_in_simulator": "1",
- "response_placeholder": "_http_response"
- },
- {
- "action": "_set_custom_var",
- "value": "HTTP Status: {{_http_response.info.http_code}}\r\nBody: \r\n{{_http_response.body}}",
- "format": "",
- "is_simulator_only": "0",
- "var": "response"
- }
- ]
- }
- }
- ]
- }
- ]
- }
- ]
-}
-{% endraw %}
-{% endhighlight %}
-
-Click the **Import** button.
-
-You'll be prompted to link the Salesforce connected account you created earlier.
-
-Click the **Import** button again.
-
-You should see the following:
-
-
-

-
-
-# Test the integration behaviors
-
-Click on **Salesforce Bot** and then click **Behaviors** on its card.
-
-
-

-
-
-Open the card for the **List account records** behavior.
-
-
-

-
-
-Click on the **Simulator** button at the top of the card.
-
-Click the **Simulate** button.
-
-You should see a JSON response with account records.
-
-
-

-
-
-You can use the simulator on the other behaviors to test them as well.
-
-# Next steps
-
-At this point you can modify the behaviors to meet your needs. You can use the responses from the [Salesforce API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest) in your behaviors.
\ No newline at end of file
diff --git a/_solutions/integrations/salesforce.md b/_solutions/integrations/salesforce.md
index 41bc277a..7161e656 100644
--- a/_solutions/integrations/salesforce.md
+++ b/_solutions/integrations/salesforce.md
@@ -204,8 +204,8 @@ start:
{% endhighlight %}
-# Use the connected account in bot behaviors
+# Use the connected account in automations
-You can use the connected account you just created to access the [Saleforce REST API](https://developer.salesforce.com/page/REST_API) from bot behaviors in Cerb. This is typically accomplished using the **Execute HTTP Request** action from a bot, and selecting the connected account in the **Authentication:** section.
+You can use the connected account you just created to access the [Salesforce REST API](https://developer.salesforce.com/page/REST_API) from automations in Cerb. This is typically accomplished using the `http.request` action from an automation, and selecting the connected account in the ``authentication`` field.
-You can import the [Salesforce Bot](/packages/salesforce-bot/) package for a working example.
\ No newline at end of file
+Alternatively, you can import the [Salesforce](/workflows/wgm.integrations.salesforce/) workflow for a working example.
\ No newline at end of file
diff --git a/_workflows/wgm.integrations.salesforce.md b/_workflows/wgm.integrations.salesforce.md
new file mode 100644
index 00000000..7bb248db
--- /dev/null
+++ b/_workflows/wgm.integrations.salesforce.md
@@ -0,0 +1,351 @@
+---
+title: Salesforce
+excerpt: Integrate Cerb with Salesforce's API
+layout: integration
+topic: Workflows
+permalink: /workflows/wgm.integrations.salesforce/
+redirect_from:
+ - /packages/salesforce-bot/
+jumbotron:
+ title: Salesforce
+ tagline: ""
+ breadcrumbs:
+ - label: Resources »
+ url: /resources/
+ - label: Workflows »
+ url: /resources/workflows/
+---
+
+* TOC
+{:toc}
+
+# Introduction
+
+This workflow contains multiple automations for demonstrating integration between Cerb and [Salesforce API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/).
+
+
+

+
+
+# Configure the Salesforce service
+
+If you haven't already, follow [these instructions](/solutions/integrations/salesforce/) to configure the Salesforce service and add your first connected account.
+
+# Installation
+
+Click on **Search >> Workflows >> (+) >> (empty)** and paste the following [KATA](/docs/kata/):
+
+{% highlight cerb %}
+{% raw %}
+workflow:
+ name: wgm.integrations.salesforce
+ version: 2025-04-15T01:10:55Z
+ description: Sample integrations for Salesforce
+ website: https://cerb.ai/workflows/wgm.integrations.salesforce
+ requirements:
+ cerb_version: >=11.0 <11.1
+ cerb_plugins: cerberusweb.core,
+ config:
+ chooser/account:
+ label: Salesforce Account
+ record_type: connected_account
+ text/domain:
+ label: Your Salesforce domain
+ text/version:
+ label: API Version
+ default: v63.0
+records:
+ automation/versions:
+ fields:
+ name: wgm.integrations.salesforce.listVersions
+ extension_id: cerb.trigger.automation.function
+ description: List available API versions
+ script@raw:
+ start:
+ set/config:
+ config@json: {{cerb_workflow_config('wgm.integrations.salesforce')|json_encode}}
+
+ http.request/version:
+ output: http_response
+ inputs:
+ method: GET
+ url: https://{{config.domain}}.my.salesforce.com/services/data/
+ authentication: cerb:connected_account:{{config.account}}
+ on_success:
+ set:
+ response@json: {{http_response.body}}
+ http_response@json: null
+
+ policy_kata@raw:
+ commands:
+ http.request:
+ deny/method@bool: {{inputs.method not in ['GET']}}
+ deny/url@bool: {{inputs.url is not prefixed ('https://'~ cerb_workflow_config('wgm.integrations.salesforce','domain') ~ '.my.salesforce.com/services/data')}}
+ allow@bool: yes
+ automation/createAccount:
+ fields:
+ name: wgm.integrations.salesforce.account.create
+ extension_id: cerb.trigger.automation.function
+ description: Create a new Account record
+ script@raw:
+ start:
+ set/config:
+ config@json: {{cerb_workflow_config('wgm.integrations.salesforce')|json_encode}}
+
+ http.request/createAccount:
+ output: http_response
+ inputs:
+ method: POST
+ url: https://{{config.domain}}.my.salesforce.com/services/data/{{config.version}}/sobjects/Account/
+ headers:
+ Content-Type: application/json
+ authentication: cerb:connected_account:{{config.account}}
+ body:
+ Name: Testerson LLC
+ NumberOfEmployees: 5
+ Industry: Testing
+ on_success:
+ set:
+ response@json: {{http_response.body}}
+ http_response@json: null
+
+ policy_kata@raw:
+ commands:
+ http.request:
+ deny/method@bool: {{inputs.method not in ['POST']}}
+ deny/url@bool: {{inputs.url is not prefixed ('https://'~ cerb_workflow_config('wgm.integrations.salesforce','domain') ~ '.my.salesforce.com/services/data/'~ cerb_workflow_config('wgm.integrations.salesforce','version') ~ '/sobjects/Account/')}}
+ allow@bool: yes
+ automation/updateAccount:
+ fields:
+ name: wgm.integrations.salesforce.account.update
+ extension_id: cerb.trigger.automation.function
+ description: Update an existing Account record
+ script@raw:
+ inputs:
+ text/accountid:
+ type: freeform
+ required@bool: yes
+
+ start:
+ set/config:
+ config@json: {{cerb_workflow_config('wgm.integrations.salesforce')|json_encode}}
+
+ http.request/createAccount:
+ output: http_response
+ inputs:
+ method: PATCH
+ url: https://{{config.domain}}.my.salesforce.com/services/data/{{config.version}}/sobjects/Account/{{inputs.accountid}}
+ headers:
+ Content-Type: application/json
+ authentication: cerb:connected_account:{{config.account}}
+ body:
+ BillingCity: Testerville
+
+ policy_kata@raw:
+ commands:
+ http.request:
+ deny/method@bool: {{inputs.method not in ['PATCH']}}
+ deny/url@bool: {{inputs.url is not prefixed ('https://'~ cerb_workflow_config('wgm.integrations.salesforce','domain') ~ '.my.salesforce.com/services/data/'~ cerb_workflow_config('wgm.integrations.salesforce','version') ~ '/sobjects/Account/')}}
+ allow@bool: yes
+ automation/getAccount:
+ fields:
+ name: wgm.integrations.salesforce.account.get
+ extension_id: cerb.trigger.automation.function
+ description: Get info on an existing Account record
+ script@raw:
+ inputs:
+ text/accountid:
+ type: freeform
+ required@bool: yes
+ text/fields:
+ type: freeform
+ required@bool: yes
+
+
+ start:
+ set/config:
+ config@json: {{cerb_workflow_config('wgm.integrations.salesforce')|json_encode}}
+
+ http.request/createAccount:
+ output: http_response
+ inputs:
+ method: GET
+ url: https://{{config.domain}}.my.salesforce.com/services/data/{{config.version}}/sobjects/Account/{{inputs.accountid}}?fields={{inputs.fields}}
+ authentication: cerb:connected_account:{{config.account}}
+ on_success:
+ set:
+ body@json: {{http_response.body}}
+ return:
+ body: {{body|json_encode|json_pretty}}
+ status_code: {{http_response.status_code}}
+ policy_kata@raw:
+ commands:
+ http.request:
+ deny/method@bool: {{inputs.method not in ['GET']}}
+ deny/url@bool: {{inputs.url is not prefixed ('https://'~ cerb_workflow_config('wgm.integrations.salesforce','domain') ~ '.my.salesforce.com/services/data/'~ cerb_workflow_config('wgm.integrations.salesforce','version') ~ '/sobjects/Account/')}}
+ allow@bool: yes
+ automation/query:
+ fields:
+ name: wgm.integrations.salesforce.query
+ extension_id: cerb.trigger.automation.function
+ description: Make a query for the name of all available accounts in your organization
+ script@raw:
+ start:
+ set/config:
+ config@json: {{cerb_workflow_config('wgm.integrations.salesforce')|json_encode}}
+
+ http.request/createAccount:
+ output: http_response
+ inputs:
+ method: GET
+ url: https://{{config.domain}}.my.salesforce.com/services/data/{{config.version}}/query/?q=SELECT+name,id+from+Account
+ authentication: cerb:connected_account:{{config.account}}
+ on_success:
+ set:
+ response@json: {{http_response.body}}
+ http_response@json: null
+ policy_kata@raw:
+ commands:
+ http.request:
+ deny/method@bool: {{inputs.method not in ['GET']}}
+ deny/url@bool: {{inputs.url is not prefixed ('https://'~ cerb_workflow_config('wgm.integrations.salesforce','domain') ~ '.my.salesforce.com/services/data/'~ cerb_workflow_config('wgm.integrations.salesforce','version') ~ '/query/')}}
+ allow@bool: yes
+ automation/listResources:
+ fields:
+ name: wgm.integrations.salesforce.resources
+ extension_id: cerb.trigger.automation.function
+ description: List all available API endpoints for your version
+ script@raw:
+ start:
+ set/config:
+ config@json: {{cerb_workflow_config('wgm.integrations.salesforce')|json_encode}}
+
+ http.request/createAccount:
+ output: http_response
+ inputs:
+ method: GET
+ url: https://{{config.domain}}.my.salesforce.com/services/data/{{config.version}}/
+ authentication: cerb:connected_account:{{config.account}}
+ on_success:
+ set:
+ response@json: {{http_response.body}}
+ http_response@json: null
+ policy_kata@raw:
+ commands:
+ http.request:
+ deny/method@bool: {{inputs.method not in ['GET']}}
+ deny/url@bool: {{inputs.url is not prefixed ('https://'~ cerb_workflow_config('wgm.integrations.salesforce','domain') ~ '.my.salesforce.com/services/data/'~ cerb_workflow_config('wgm.integrations.salesforce','version') ~ '')}}
+ allow@bool: yes
+ automation/getAccountInteraction:
+ fields:
+ name: wgm.integrations.salesforce.account.get.interaction
+ extension_id: cerb.trigger.interaction.worker
+ description: Worker interaction for grabbing account record details
+ script@raw:
+ start:
+ await:
+ form:
+ title: Get Account Record
+ elements:
+ text/prompt_id:
+ label: Account ID
+ required@bool: yes
+ type: freeform
+ text/prompt_fields:
+ label: Account fields to retrieve (comma-separated)
+ default: Name,NumberOfEmployees,Industry
+ required@bool: yes
+ type: freeform
+
+ function/getAccount:
+ uri: cerb:automation:wgm.integrations.salesforce.account.get
+ inputs:
+ accountid: {{prompt_id}}
+ fields: {{prompt_fields}}
+
+ output: results
+
+ outcome/success:
+ if@bool: {{200 == results.status_code}}
+ then:
+ await:
+ form:
+ title: Account Details
+ elements:
+ say/details:
+ content@text:
+ {{results.body}}
+ submit:
+ buttons:
+ continue/yes:
+ label: Exit
+ icon: circle-ok
+ icon_at: start
+ value: yes
+ reset:
+ label: Make Another Query
+ icon: refresh
+ icon_at: start
+
+
+
+ policy_kata@raw:
+ commands:
+ function:
+ deny/uri@bool: {{uri != 'cerb:automation:wgm.integrations.salesforce.account.get'}}
+ allow@bool: yes
+ toolbar_section/accountInteractionToolbar:
+ fields:
+ name: Get Account Info
+ toolbar_name: global.menu
+ priority@int: 50
+ is_disabled: 0
+ toolbar_kata@raw:
+ interaction/getAccount:
+ label: Get Account Info
+ uri: cerb:automation:wgm.integrations.salesforce.account.get.interaction
+{% endraw %}
+{% endhighlight %}
+
+# Configuration
+
+|---
+| Field |
+|-|-
+| **Salesforce Account:** | A Salesforce [connected account](/solutions/integrations/salesforce/).
+| **Your Salesforce Domain:** | The domain of your Salesforce instance (the part before `my.salesforce.com`).
+| **API Version:** | Your desired API version. Defaults to `v63.0`
+
+
+

+
+
+You can update the configuration at any time by opening the workflow profile and clicking "Edit Configuration".
+
+# Test the integration
+
+## Create an Account record
+The workflow contains six example automation functions and a worker interaction for accomplishing various tasks. Let's try creating a new `Account` record.
+
+Click on `wgm.integrations.salesforce.account.create` to bring up its card and click **Edit**. From there you can click the play button on the simulator. This should create a new `Account` record called `Testerson LLC`. The automation output will also present you with the ID of the new record.
+
+## Retrieve record fields
+The workflow adds a "Get Account Info" interaction to the global menu. Click the Cerb icon in the bottom right corner of the screen and click **Get Account Info**.
+
+
+

+
+
+Enter the Account ID you want to retrieve (you can use the `Testerson LLC` account we created earlier) and a comma-separated list of the account fields you want to retrieve, or use the defaults.
+
+
+

+
+
+You will be presented with the account fields you entered and their respective values.
+
+You can test the other automations in their simulators as well.
+
+# Next steps
+
+At this point you can modify the automations to meet your needs. You can use the responses from the [Salesforce API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest) in your automations.
\ No newline at end of file
diff --git a/assets/images/workflows/integrations-salesforce/global-menu.png b/assets/images/workflows/integrations-salesforce/global-menu.png
new file mode 100644
index 00000000..233fe9bc
Binary files /dev/null and b/assets/images/workflows/integrations-salesforce/global-menu.png differ
diff --git a/assets/images/workflows/integrations-salesforce/interaction.png b/assets/images/workflows/integrations-salesforce/interaction.png
new file mode 100644
index 00000000..b31d6e6c
Binary files /dev/null and b/assets/images/workflows/integrations-salesforce/interaction.png differ
diff --git a/assets/images/workflows/integrations-salesforce/workflow-config.png b/assets/images/workflows/integrations-salesforce/workflow-config.png
new file mode 100644
index 00000000..5ca64201
Binary files /dev/null and b/assets/images/workflows/integrations-salesforce/workflow-config.png differ