# mulesoft Composer - Full Documentation --- product: Composer --- # Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt > [!NOTE] This is a test note. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Username The username that you use to log in to . Password The password that you use to log in to .
. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options:
. ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions:
. ## Objects
. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Activating a Composer Flow > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After you [build](https://docs.mulesoft.com/composer/ms_composer_using_a_flow_and_creating_trigger#create-a-new-flow) and [test](https://docs.mulesoft.com/composer/ms_composer_test_flow) a flow in a sandbox environment, [connect](https://docs.mulesoft.com/composer/ms_composer_connecting_a_flow) your flow to a production environment. After testing your flow in the production environment, you can activate it. To activate your flow: 1. In Composer, find the flow you want to activate in the flows list. Your flow status is listed as **Inactive**. 2. Click the flow name to open it. 3. Click **Edit**. 4. Click **Activate**. Composer notifies you when the flow is activated. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Asana Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Asana is a SaaS-based project management tool that enables teams of all sizes to manage their daily tasks, schedules, and deliverables. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Older connections may expire if not regularly used. Asana sets the amount of time a connection remains valid. Username The OAuth username that you use to log in to Asana. Password The OAuth password that you use to log into Asana. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New or updated task Fires when a task is created or an existing task is updated. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create new task Creates a new task record. When creating a new task record, store the values for both the User ID and the Task ID in the source system for use when updating task records. Update task Returns the completed and updated task record. Add comment to card Comment on a task to ask questions, provide extra information, or to offer insight. The comment appears on the card. ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the Asana record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Box Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Box is a general purpose, SaaS enterprise content management system. Organizations use Box to securely manage and to collaborate on documents, images, videos and various other files. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Username The OAuth username that you use to log in to Box. Password The OAuth password that you use to log in to Box. ## Transfer Binary Files You can transfer binary files as field inputs using data pills from within your Composer flow. For example, when keeping files in sync between Box instances, you can download binary file content from one instance and later upload that same file content to another instance. The recommended file size limit per transfer is 25MB and files transferred across systems cannot be truncated. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: On new file in folder Triggers when a new folder is added. Provide a value for **Folder ID**. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Add file to folder using URL Adds a file to a folder in Box which is referenced by a publicly-shared URL. Provide a value for the following fields: - **Folder ID** - **Source URL** Upload File Adds a file to a folder in Box. Provide a value for the following fields: - **File Name** - **File contents** - **Folder ID** - **Existing File ID** Download File Returns the binary contents of the specified file and version. Provide a value for the following fields: - **File ID** - **Version** Create folder Creates a folder in the Box structure. Provide a value for the following fields: - **Parent Folder ID** - **Folder name** Create file metadata Creates file metadata by populating a metadata template on a file in Box. Provide a value for the following fields: - **File ID** - **Metadata template** Multiple selection field types, such as checkboxes, do not appear in Composer. Update file metadata Updates file metadata by updating the existing metadata template on a file in Box. Provide a value for the following fields: - **File ID** - **Metadata template** Multiple selection field types, such as checkboxes, do not appear in Composer. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Building a Flow Using Templates > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can create a new flow from a template. Templates are patterns that you can leverage to build a flow. All of the steps and field mappings are predefined, so you can select the template and enter the missing information for the various connectors used (such as connection secrets) to create a flow you can later customize to meet your business needs. For example, you might still need to add required fields specific to your connection, map additional fields, or add or delete steps to meet your use case. You will likely still need to make a few changes before activating the flow. Since templates are pre-built flows, templates not only reduce the barrier to entry and accelerate the time to activate the flow, but also include the best practices for flows. Some examples of templates include: - Cloud-specific templates, such as Service Cloud or Revenue Cloud - Connector-specific templates, such as Salesforce, ServiceNow, NetSuite, or Jira You can search for templates (by template name, connector name, or template description) and filter templates (by use case category or connector). For more information about how to create a new flow from template, refer to [Create a New Flow From Template](https://docs.mulesoft.com/composer/ms_composer_using_a_flow_and_creating_trigger#create-a-new-flow-from-template). Since you will likely need to further customize your flow from a template, consider the following recommendations and guidelines when encountering messages while customizing your flow from a template. Instance Requires Different Fields Your instance might have fields that are different from the template. For example, you might need to add a required field that is not used or delete a field used in the template that does not exist in your connection. These errors must be resolved before testing the flow. Field Does Not Exist With Your Connection The `This field does not exist with your connection` message appears if the input field is not present in your connection. For example, when creating custom fields defined in the prerequisites, the ID of the custom field saved in the template differs from the ID of the custom field created in the instance (even if the name is the same), which causes an error to occur in the flow. You can delete the custom field saved in the template and then re-add your custom field from the field selector. Value Does Not Exist With Your Connection The `This value does not exist with your connection` message appears if the output field (data pill) is not present in your connection. For example, when creating custom fields defined in the prerequisites, the ID of the custom field saved in the template differs from the ID of the custom field created in the instance (even if the name is the same), which causes an error to occur in the flow. You can remove the mapped data pill and select your custom field from the dropdown. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Building Formulas for Flows > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Manipulate data in Composer by building _expressions_ and applying _functions_. Using the **Custom Expression Editor**, create expressions that include functions and mathematical operators. Use the editor also to truncate words, capitalize phrases, and set the date. When building formulas for a flow, keep in mind that: - You can nest functions and use the input parameters of another function call for your function. - Composer functions used in Composer are built using [DataWeave](https://docs.mulesoft.com/dataweave/2.3/dw-operators). - Composer functions treat empty spaces as empty space characters in a formula. ## Access the Custom Expression Editor To access the **Custom Expression Editor**: 1. From the **Composer Flows** tab, open a flow. 2. Click **Edit**. 3. In an action field, in a value in the query builder, or in the value of an **If/Else Block** control, select **Custom Expression fx** from the drop-down menu. The **Custom Expression Editor** appears. ## Add a Custom Expression to an Action When adding a custom expression, place the cursor over elements in the **Custom Expression Editor** window to trigger context popovers containing helpful suggestions and in-app support. To add a custom expression to an action: 1. In the **Custom Expression Editor** left pane, click one of the following tabs: 1. **Function**, to view or search for a function 2. **Data**, to view or search for a field or data pill 3. **Operator**, to view or search for an operator 2. Select the available functions, fields, data pills, or operators for your custom expression from the left pane. Your selections appear in the **** box in the right pane. The syntax of your custom expression is validated automatically. 3. If you want to reuse the expression in the **** box in another field, copy it. 4. After the custom expression is created and validated, click **Apply**. 5. Click **Save**. The custom expression is added to the field. ## Edit a Custom Expression To edit an existing custom expression in an action: 1. From the **Composer Flows** tab, open a flow. 2. Click **Edit** 3. In an action field containing your custom expression, click the pencil icon. The **Custom Expression Editor** appears. 4. In the **** box in the right pane of the **Custom Expression Editor**, either select and delete the existing custom expression or place your cursor where you want to add items from the left pane. 5. In the left pane, select from the available functions, fields, data pills, or operators. Your selections appear in the **** box in the right pane. The syntax of your edited custom expression is validated automatically. 6. After your custom expression is edited and validated, click **Apply**. 7. Click **Save**. Your custom expression is edited. ## Delete a Custom Expression To delete an existing custom expression in an action: 1. From the **Composer Flows** tab, open a flow. 2. Click **Edit** 3. In an action field containing a custom expression, click the X icon. The custom expression is deleted from the field. 4. If your implementation requires this field to contain a value, either add a new custom expression or select a value from the drop-down menu. 5. On the **Flow Details** page, click **Save**. The custom expression is deleted. If your environment requires a value in the custom expression field, your addition or selection is saved. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Building Process Automation with MuleSoft Composer > For the full documentation index, see: https://docs.mulesoft.com/llms.txt MuleSoft Composer (Composer) automates data integration between systems using a no-code, visual interface. You connect different applications and synchronize data in real-time, creating a unified view of customers and business operations without technical expertise. To automate processes with Composer, you build a flow that contains every step in the process: - Selecting the data that you specify from a system such as Google Sheets, Tableau, Workday, or a Salesforce org - Performing actions on the data, such as copying it to another system You choose when to trigger the flow: when something happens, like a change to a record or row, or at intervals of time that you specify. Flows can be as simple or complex as your business needs. ## Example Imagine that a regional Slack user-group tracks its local members in a spreadsheet. Slack users register with the national organization first. Since the national office uses Salesforce to track membership, automatically pushing new members to the regional sheet would save everyone a lot of time. Using Composer, the Salesforce admin can create a single flow that automatically performs this task in near real-time. ![A workflow that describes keeping user information up to date between data silos](/mulesoft/current/en-us/composer/_images/images/overview1.png) This simple flow can be expanded to perform more complex actions, such as writing to different sheets based on the zip code of the new user or propagating changes for existing users. ## Use Cases Some common use cases for Composer include: - **Quote to Cash (ERP Integration)** Drive efficiency and improve sales productivity by automating and streamlining quote-to-cash processes. For example, automatically create sales orders in NetSuite once a Salesforce opportunity closes and automatically notify billing teams in Slack. For more information, refer to the [NetSuite Automation with MuleSoft Composer](https://trailhead.salesforce.com/content/learn/modules/netsuite-data-sync-with-mulesoft-composer) Trailhead module. - **Case Escalation (Ticketing System Integration)** Escalate and resolve cases faster by automating support case management and notification. For example, automatically create a JIRA ticket and automatically send a Slack notification to organize and prioritize urgent support cases from Service Cloud or Zendesk to streamline communication between agents, engineering, and DevOps. For more information, refer to the [Jira Automation with MuleSoft Composer](https://trailhead.salesforce.com/content/learn/modules/jira-data-sync-with-mulesoft-composer) Trailhead module. - **Salesforce to Salesforce** Connect and synchronize data between multiple Salesforce orgs. For example, create or update an object in one Salesforce org and sync the changes to another Salesforce org. For more information, refer to the [Automation Between Orgs with MuleSoft Composer](https://trailhead.salesforce.com/content/learn/modules/data-sync-between-orgs-with-mulesoft-composer) Trailhead module. ## Steps To Create a Flow To create a functioning, real-time integration in Composer, you don’t need coding experience. Simply open Composer, and then create a flow that contains all the steps you need to get data from Point A to Point B: Step 1: Choose or create a connection A connection is the username and password you’ll use to access the data you want to work with, plus the URL where you typically enter those credentials. Some systems require a few additional pieces of information, such as a security token. After you define the connection, you can use it multiple times in the same flow or in different flows that you create. Composer never exposes your credentials, and the connections are available only to you, even if other people are also building flows. Instead of a connection, you can choose to schedule a time when the flow runs, such as every 10 minutes. Step 2: Choose a trigger Every flow that uses a connection starts with a trigger: an event such as creating a new record. This event always triggers the flow to run. The events available to trigger a flow depend on the connection you choose. If a scheduled time is chosen instead of a connection, no trigger is needed, because the flow runs at the chosen interval. Step 3: Define the actions you want to take Define what happens to the data fetched by the trigger, and when those actions should be taken; for example, to fetch all records for a specific time period but only copy over the records that have changed or that are new. You might also want to copy over only some information from each record, rather than the entire record. Using the triggers and actions of Composer, you can make the flow as elaborate or as simple as necessary. If you start the flow at a specified time interval instead of choosing a connection, then you’ll fetch data as part of the first action. Step 4: Test your flow on one record As you define triggers and actions, you see sample data that helps you verify you are building the right steps. You can test every change before making the next one, making it easier to find and correct issues with your flow. Your changes will not appear until you activate the flow. Step 5: Activate the flow After testing, activate the flow in your production org. After the flow is activated, it automatically runs when the conditions in the trigger are met. Step 6: Monitor the behavior of your flow You can see what your flow is doing by looking at the data provided on the flow detail page in Composer. Mapping data between systems and doing exactly the right thing at the right time sometimes feels complicated; however, using Composer helps you break down the logic into the steps required. You can experiment with a flow until you’ve got it working just right, and you can add complexity to it as you discover new use cases. ## Access Composer Access the home page to start using Composer for your business needs: ![Mulesoft Composer Home page](/mulesoft/current/en-us/composer/_images/images/overview-page-ms.png)
1Overview: View the Composer home page.
2Flows: Create, test, activate, and monitor your flows.
3Usage Summary: View your monthly tasks and credit usage per flow for your organization.
4Templates: Leverage pre-built Composer templates to build your flow.
5Help: Learn about Composer, explore the product documentation, join the MuleSoft community, or visit the Help center.
6Create new flow: Create your new flow from scratch or from a template.
## Next Steps 1. Review [How Composer Works](https://docs.mulesoft.com/composer/ms_composer_about_flows) to understand how the different parts of a flow work together to automate processes. 2. Create a plan for your first flow using the [checklist](https://docs.mulesoft.com/composer/ms_composer_checklist). 3. Open Composer and build your first flow. ## Related Resources - [Mulesoft Composer Training](https://blogs.mulesoft.com/news/introducing-mulesoft-composer/) - [Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Composer Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Each system that connects to MuleSoft Composer (Composer) behaves in different ways depending on how the system stores the information you want to retrieve and manipulate. Review each system reference page to understand which triggers and actions are available. The connectors listed in this documentation are available for MuleSoft Composer (Composer). - [Asana](https://docs.mulesoft.com/composer/ms_composer_asana_reference) - [Box](https://docs.mulesoft.com/composer/ms_composer_box_reference) - [Gmail](https://docs.mulesoft.com/composer/ms_composer_gmail_reference) - [Google BigQuery](https://docs.mulesoft.com/composer/ms_composer_google_bigquery_reference) - [Google Calendar](https://docs.mulesoft.com/composer/ms_composer_google_calendar_reference) - [Google Sheets](https://docs.mulesoft.com/composer/ms_composer_googlesheets_reference) - [HTTP](https://docs.mulesoft.com/composer/ms_composer_http_reference) - [HubSpot](https://docs.mulesoft.com/composer/ms_composer_hubspot_reference) - [Jira](https://docs.mulesoft.com/composer/ms_composer_jira_reference) - [Marketo](https://docs.mulesoft.com/composer/ms_composer_marketo_reference) - [Microsoft Dynamics 365 Business Central](https://docs.mulesoft.com/composer/ms_composer_ms_dynamics_365_business_central_reference) - [Microsoft Teams](https://docs.mulesoft.com/composer/ms_composer_ms_teams_reference) - [NetSuite](https://docs.mulesoft.com/composer/ms_composer_netsuite_reference) - [QuickBooks Online](https://docs.mulesoft.com/composer/ms_composer_quickbooks_reference) - [MuleSoft RPA](https://docs.mulesoft.com/composer/ms_composer_rpa_reference) - [Rest Consumer](https://docs.mulesoft.com/composer/ms_composer_rest_consumer_reference) - [Sage Intacct](https://docs.mulesoft.com/composer/ms_composer_sage_intacct_reference) - [Salesforce](https://docs.mulesoft.com/composer/ms_composer_salesforce_reference) - [Salesforce Marketing Cloud](https://docs.mulesoft.com/composer/ms_composer_salesforce_marketing_cloud_reference) - [SAP S/4HANA Cloud](https://docs.mulesoft.com/composer/ms_composer_sap_s4hana_reference) - [ServiceNow](https://docs.mulesoft.com/composer/ms_composer_servicenow_reference) - [Slack](https://docs.mulesoft.com/composer/ms_composer_slack_reference) - [Snowflake](https://docs.mulesoft.com/composer/ms_composer_snowflake_reference) - [Stripe](https://docs.mulesoft.com/composer/ms_composer_stripe_reference) - [Tableau](https://docs.mulesoft.com/composer/ms_composer_tableau_reference) - [Twilio](https://docs.mulesoft.com/composer/ms_composer_twilio_reference) - [Workday](https://docs.mulesoft.com/composer/ms_composer_workday_reference) - [Xero](https://docs.mulesoft.com/composer/ms_composer_xero_reference) - [Zendesk](https://docs.mulesoft.com/composer/ms_composer_zendesk_reference) - [Zuora](https://docs.mulesoft.com/composer/ms_composer_zuora_reference) ## Related Resources - [Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Configuring and Managing Flows > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After you collect the information described in [the preparation checklist](https://docs.mulesoft.com/composer/ms_composer_checklist), you can then [build](https://docs.mulesoft.com/composer/ms_composer_using_a_flow_and_creating_trigger), [activate](https://docs.mulesoft.com/composer/ms_composer_activation), and [monitor](https://docs.mulesoft.com/composer/ms_composer_monitoring) your flows. Building a flow involves creating a new flow or cloning an existing flow; adding and testing a trigger; adding and testing each action to be performed by the flow, in the order that you want each action performed; and finally testing the completed new flow before activating it. [Test](https://docs.mulesoft.com/composer/ms_composer_test_flow) each trigger and action as you add it to your flow. ## Flow Details Page Access the **Flow Details** page to see details about your flow: ![The Flow Details page in MuleSoft Composer](/mulesoft/current/en-us/composer/_images/images/flow-details-ms.png)
1The name of the flow.
2Details about the flow:
  1. Created On: The date on which the flow was created in the time zone set in your browser.

  2. Flow ID: The ID of the flow.

  3. Flow Owner: The owner of the flow.

  4. Last Modified: The date on which the flow was last modified in the time zone set in your browser.

  5. Status: The status or the flow. The status can be either active or inactive.

  6. Last Triggered: The date on which the flow was most recently triggered. This field displays the last time the flow was triggered by either an Event poll or the Scheduler.

3The Run History of the flow. Composer stores up to 1000 records per flow and can include only the last two weeks of data. For example, for a flow that produces 10 records per day, you can see the Run History for the last two weeks of data (14 x 10 = 140 records). For a flow that produces 100 records per hour, you can see no more than 10 hours of the Run History. Triggering a flow via the Scheduler always creates an entry in the Run History. An entry in the Run History is only added by an Event trigger when a record is either created or updated and passes any filter condition.
  1. Start Date: The date on which the flow started in the time zone set in your browser.

  2. End Date: The date on which the flow ended in the time zone set in your browser.

  3. Status: The status of the flow. The status can be either SUCCESS or FAILED.

  4. Reference ID: The ID of the record or execution that triggered the flow. For Event triggers, the value in this field is the corresponding Record ID. For events triggered by the Scheduler, a unique Execution ID value is created for the run instance.

  5. Error: If a flow fails, the error message for the failure appears.

4The flow actions. You can delete, clone, or view an active flow. Note that if the flow is inactive, you can edit the flow.
5The Run History actions. You can refresh the Run History section or filter the section by specified criteria.
## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Connecting a Flow > For the full documentation index, see: https://docs.mulesoft.com/llms.txt A _connection_ in Composer is a configuration that uses a connector and associated user or system credentials to connect to a system. You can use connections at different steps to perform specific tasks, such as connecting to a system, checking for triggers, and retrieving or manipulating data. ## Access the Connections Page To access the **Connections** page, from the **Composer** home page, click **Connections** in the navigation pane. The **Connections** page enables you to: - Select a connection to view all of the flows currently using that connection. - [Change a connection](#change-a-connection). - [Repair a connection](#repair-a-connection). - [Delete a connection](#delete-a-connection). - Change the name of a connection. To access the **Connections** page, from the **Composer** home page, click **Connections** in the navigation pane. ## Change a Connection You can change connections in a trigger or action for all steps (at the flow level) or for individual steps. For example, you can create a flow using connections to a Salesforce sandbox org, and then after your flow testing is complete, you can change the connection in your trigger and actions to use a production org. You can only change to a connection accessing the same system type. You can’t change a Workday connection to a Google Sheets connection, for example. To change a connection: 1. Open the flow. 2. Click the change icon in the trigger or action that connects to a sandbox: ![A button that says Change the Connection](/mulesoft/current/en-us/composer/_images/images/change-connection.png) 3. Change the connection to an existing connection or to a new connection. - If you change the connection to an existing connection: 1. Select the connection to change to. 2. Optionally, if you want to change the connection for all steps that use this specific connection, select **Change all instances of XXX to XXX in this flow**. 3. Click **Change**. 4. Click **Confirm**. - If you change the connection to a new connection: 1. Click **Add New (Connector Name) Connection**. 2. Enter a value for the **Connection Display Name** field. 3. Optionally, if you want to change the connection for all steps that use this specific connection, select **Change all instances of current connection to the new connection in this flow**. 4. Click **Connect**. 5. In the dialog box, log in to the system and allow access. ## Repair a Connection If your OAuth connection is lost, you can repair the connection by refreshing the access token. To repair a connection: 1. Open the flow. 2. Click **Edit**. 3. Click the change icon in the trigger or action that requires repair, and then click **Change Connection**. 4. Click **Repair**. ## Delete a Connection If you no longer need a specific connection, you can delete it. To delete a connection: 1. [Create a new flow](https://docs.mulesoft.com/composer/ms_composer_using_a_flow_and_creating_trigger#create-a-flow) or add a step to an existing flow. 2. If you create a new flow: 1. Select the connector or system to start your flow. 2. In the **What Should Start This Flow?** window, click the gear icon. 3. If you add a step to an existing flow: 1. Select the connector or system to start your flow. 2. In the **Next Step** window, click the gear icon. 4. In the **Manage Connections** window, next to the connection that you want to delete, click the trashcan. A message appears ensuring that you want to delete the selected connection. A window appears, displaying a list of flows currently using that connection. If the connection is: - Not used in any flows, you can delete the connection. - Used in inactive flows, a list containing the name and count of inactive flows using this connection appears. Deleting this connection will affect the listed flows. If you reopen the inactive flow, you must [select a new connection](#change-a-connection). - Used in active and inactive flows, a list containing the name, count, and status of active and inactive flows using this connection appears. If you choose to delete the connection, secondary confirmation appears. Prior to deleting the connection, Composer will first attempt to stop the flows. 5. Click **Delete**. The connection is deleted. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Gmail Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Gmail is a popular email service used by businesses for a large number of communication purposes. This connector enables productivity by connecting a user’s inbox to other systems like Google Sheets, Salesforce, or Slack. ## Before You Begin Gmail Connector requires third-party app access to access restricted data in Google. Before using the connector, your Google Workspace administrator must [add one of the following client IDs to the list of configured apps](https://support.google.com/a/answer/7281227#trustorlimit&zippy=%2Cmanage-access-to-apps-trusted-limited-or-blocked) to create OAuth connections with Composer: - Production Environment United States: `14294369739-rn5ftpjat2mnofvp3gevkvmik0roioe7.apps.googleusercontent.com` - Production Environment Europe: `14294369739-028kk1tl316tgo3a59rtpl6qq6u22d25.apps.googleusercontent.com` ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Username The OAuth username that you use to log in to Google. Password The OAuth password that you use to log in to Google. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: On New Email If you don’t specify a [filter](https://developers.google.com/workspace/gmail/api/guides/labels), this trigger fires on all emails (received, sent, or drafts). To specify a filter, the following field is required: - Filter Criteria For example, use `in:inbox` to limit the trigger to new messages in the inbox ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Send email Sends an email. The following fields are required: - To - Subject - Body To send an email with attachments, the following additional fields are required: - Attachment content - Attachment name Get Attachments Retrieves all attachments from an email. Images that are attached to an email using the clip icon are considered attachments, but images that are dragged into the body of an email are considered embedded images and not attachments. The following field is required: - Message Id The Google Gmail connector’s use and transfer to any other application of information received from Google APIs is subject to the [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy#additional_requirements_for_specific_api_scopes), including the Limited Use requirements. **Gmail™ is a trademark of Google LLC.** ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Google BigQuery Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Google BigQuery is a cloud data warehouse that enables customers to store and access their data while also offering tooling to run real-time analytics across datasets. ## Before You Begin - To use Google BigQuery Connector, you must have a [Google Workspace](https://support.google.com/a/users/answer/9389764?hl=en&ref_topic=9296556&sjid=17545113492625404882-NA) account. Connections from Composer to personal Google accounts are not permitted. When you connect to your Google Workspace account, a message appears indicating that the Composer is an [unverified app](https://support.google.com/cloud/answer/7454865?hl=en). This behavior is expected. To bypass this message and use the connector, on the **Google hasn’t verified this app** dialog, click **Advanced** > **Use anyway**. - Google BigQuery Connector requires third-party app access to access restricted data in Google. Before using the connector, your Google Workspace administrator must [add the following client ID to the list of configured apps](https://support.google.com/a/answer/7281227#trustorlimit&zippy=%2Cmanage-access-to-apps-trusted-limited-or-blocked) to create OAuth connections with Composer: `292130641403-rlgmr379unk36nuvpba0sd1u3u9c6vap.apps.googleusercontent.com` ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Display Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Project ID The project ID from Google BigQuery. Username The OAuth username that you use to log into Google BigQuery. Password The OAuth password that you use to log into Google BigQuery. ## Data Types The following data types are supported by Google BigQuery Connector: - INT64 - BIGNUMERIC - BOOL - BYTES - DATE - DATETIME - FLOAT64 - JSON - NUMERIC - STRING - TIME - TIMESTAMP ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: > [!NOTE] For the given project ID, US-based datasets are retrieved. On New Row Source Returns all new rows of a table based on a watermark every 15 seconds. Provide a value for the following fields: - **Dataset name** - **Table name** - **New Watermark Column**: The following column data types are available for this field: - DATE - DATETIME On New or Updated Row Source Returns all new or updated rows of a table based on a watermark every 15 seconds. Provide a value for the following fields: - **Dataset name** - **Table name** - **New Watermark Column**: The following column data types are available for this field: - DATE - DATETIME - **Update Watermark Column**: The following column data types are available for this field: - DATE - DATETIME ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Insert Rows Updates a table by inserting one or more rows into the table. Provide a value for **SQL string**. Update Rows Updates a set of rows. Provide a value for **SQL string**. Delete Rows Deletes a set of rows. Provide a value for **SQL string**. Select Rows Retrieves a set of rows. Provide a value for **SQL string**. ## Input Parameters Query statements can include parameter values by adding `:` before the parameter name, such as `Select field from dataset.table where field = :param1`. You can define a value for the parameter in the **Input Parameters** section. For example, if you define `param1` as `12345`, the query statement is `Select field from dataset.table where field = 12345`. You must define a value for the parameter as either a literal string or an output value from previous actions. Note that input parameter values of String or date data types must be provided between single quotes using the expression editor. For literal strings, add the single quotes to the value in the editor, such as `’12345’`. For an output value from previous actions, select the custom expression option, add the single quotes to the custom expression in the editor, and apply the changes, such as `’Field From Previous Step’`. **Google BigQuery™ is a trademark of Google LLC.** ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Google Calendar Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Google Calendar is a calendar and task planning application by Google that focuses on enhancing personal and team productivity. Using Google Calendar, individuals can easily schedule tasks and meetings. They can also share events with colleagues through an easy-to-use calendar interface. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Username The OAuth username that you use to log in to Google. Password The OAuth password that you use to log in to Google. ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create a new event Creates an event. The following fields are required: - Calendar ID - Start Time - End Time Update an event Updates an event. The following fields are required: - Calendar ID - Event ID - Start Time - End Time If entering a custom dateTime data pill, ensure the time entered uses the UTC +0 ("Zulu") timezone. For example, January 1, 2022, at 9:00 AM Pacific Time (UTC-7) is entered as **2022-01-01, 04:00pm** Google Calendar Connector’s use and transfer to any other application of information received from Google APIs is subject to the [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy#additional_requirements_for_specific_api_scopes), including the Limited Use requirements. **Google Calendar™ is a trademark of Google LLC.** ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Google Sheets Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Google Sheets as a data source (get a new Google Sheet row and send a Slack message with information from the row, for example) or a data target (get a new Salesforce contact and turn it into a row in a Google Sheet). Some details of how to work with data in a flow are specific to the data source or data target, and also change depending on the specific trigger or actions you choose. ## Before You Begin Google Sheets Connector requires third-party app access to access restricted data in Google. Before using the connector, your Google Workspace administrator must [add the following client ID to the list of configured apps](https://support.google.com/a/answer/7281227#trustorlimit&zippy=%2Cmanage-access-to-apps-trusted-limited-or-blocked) to create OAuth connections with Composer: `250037406766-pm8dppphhfm9ugr6rtmdk1unrr48oi3h.apps.googleusercontent.com` ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Composer launches an authentication dialog where you choose which Google Drive account you’re connecting to Composer, and if you aren’t already logged in, you enter a username and password. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New spreadsheet This trigger fires when a new spreadsheet is created in the Google Drive associated with the connection. Google Sheets are not saved at the moment of creation. They are saved the first time they are edited. Therefore, a new spreadsheet won’t trigger a flow until after it is edited and saved. However, the save date is the time of creation, not the first edit. Thus, if you create a second spreadsheet and edit it before you edit the first one, the second spreadsheet triggers a flow; the first one is ignored. New row in sheet Monitors one sheet within a spreadsheet and triggers when a new row is added at the end of the sheet. When a flow is initiated, this trigger returns up all existing rows in the sheet. Each subsequent time that the flow is triggered, new rows added to the sheet are returned. Once text is present in one cell or column, updating those cells or columns does not trigger as a new row. To trigger a new row when updating a cell or column, use the **Update row in sheet** trigger. Updated row in sheet Monitors one sheet within a spreadsheet and triggers when a row is created or updated. When a flow is initiated, this trigger returns all existing rows in the sheet. Each subsequent time that the flow is triggered, new or updated rows in the sheet are returned. ### Limits - Sheets limited to 10,000 rows - Header rows excluded - Trigger works with My Drive, not Shared Drive ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create row This action adds a new row at the end of the sheet named in the connection. Update row This action updates a row in a sheet. ### Limits - A Google Sheet must have a header row. If data is stored in row #1, the action fails. - Google Sheets does not write to a cell if the composite data pill has a null or empty value. This could affect the **Update row** or **Create row** actions. **Google Sheets™ is a trademark of Google LLC.** ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # How Composer Works > For the full documentation index, see: https://docs.mulesoft.com/llms.txt A flow defines the automated processes between two or more systems. Think of it as the schema for an entire automation process. For example, you can automate any of these actions with Composer: - Copy all new records in one Salesforce org and replicate them in another. - Create employee records or job requisitions in Workday, and populate some of the fields with data from another system. - Check a source of data every fifteen minutes, and if the data changed, copy those changes to a Tableau data source. You can also combine multiple actions in a single flow, such as replicating Salesforce records and then sending a Slack message to a particular channel based on the record type. Understanding how the basic building blocks of a flow work together makes it easier to confidently build and test flows. Building a flow is a simple matter of adding a trigger and all the actions you want to perform to complete an automated process. ## Triggers The first step of the flow is always a trigger. The options available depend on which connection or schedule you choose: - If you choose a time interval instead of an event, you won’t see any options: the trigger is finished, and you are ready to create the actions that define what this flow does. - If you choose a connection, define what kind of data triggers the flow and is fetched, available for the actions you’ll define next. The following example shows a trigger that uses a connection: ![A configuration example of a Salesforce trigger](/mulesoft/current/en-us/composer/_images/images/trigger-example.png) - **Trigger** is the name of the trigger, a name you provide. - **Salesforce Org HQ** is the name of the connection which this trigger uses as the data source. The trigger listens to the data source and starts when an event specified in the next field occurs, or when a time interval is reached. - **Start this flow when:** is a list of actions that can start a flow for the chosen connection. Click in the text box to see a list of options. - **Object type** is a list of objects you can choose, such as account or opportunity for a Salesforce connection. The label here and the choices you are given depend on the connection. - **Result fields** by default lists the number of fields that will be available to the flow each time it is triggered. To work with only some record fields, click **Select Fields**. - **Sample Output** shows you the field name and a sample value taken from an actual record in the data source you connected to. Check the sample output to confirm that you’ve connected to the correct account. It also helps you understand the data that you’ll be able to work with. To see the API Name of the field, hover over the information bubble next to each field name. You can test your trigger and adjust as needed. Simply click **Test**, then make the system event happen: in this example, create a new Salesforce contact. If the test completes without errors, you’re ready for the next step: define the actions that this flow will perform after being triggered. ### Choosing Between Using Connections or a Scheduler After you create and name a flow, choose what triggers the flow: an event in a system such as Salesforce or Workday (creating a connection), or a time interval specified by a Scheduler, such as "every fifteen minutes. Triggering a flow with an event is done with a connection, and triggering with a time schedule is done with Scheduler. ![A connection dialog that shows a list of systems that can trigger a flow](/mulesoft/current/en-us/composer/_images/images/connection-example.png) #### Triggering Flows by Using Connections Using connections to trigger flows protects your login credentials while giving easy access to data sources: - Only you can see the connections you create. - Your credentials are never exposed or accessible after you create a connection to replace them. - You can’t change the name of a connection after it is used in a flow that is deployed. The first step in triggering a flow is connecting to the system where the trigger will occur. In the **What Should Start This Flow** dialog, choose or create a connection as the first step of creating a trigger: - Choose an existing connection from the list. - Click **Add New Connection** to create a new connection that is automatically selected after you create it. - Manage connections by changing connection names or deleting connections. #### Triggering Flows by Using a Scheduler Instead of using connections to trigger a flow, you can use the **Scheduler** control to create a time interval that triggers a flow: ![A dropdown menu with a list of time intervals, including 15 minutes, 30 minutes, 45 minutes, 1 hour, 5 hours, and 1 day](/mulesoft/current/en-us/composer/_images/images/connection-scheduler.png) ## Actions An action is a step in the flow. You create the first action of the flow right after the trigger, and as with the trigger, you can choose a connection. You’ll have access to the data fetched by the trigger and any previous actions as well. However, you can also start with a flow control before the action. ![A dialog for adding an action](/mulesoft/current/en-us/composer/_images/images/create-an-action.png) In the following example, a Salesforce admin has created an action, named it, and chosen a connection to their Google spreadsheets, as you can see in the top banner of the action. The admin has also defined the action: in this case, create a new row in a spreadsheet and populate it with some fields from the flow trigger (each new contact record). ![A step in the example action configuration to create a new row in a spreadsheet](/mulesoft/current/en-us/composer/_images/images/action-step1.png) - **Action** is the task you want to perform. The actions you can choose from depend on which connection you choose. The rest of the fields in this section depend on the connection type, and the action you choose. - **Spreadsheet ID** is the name of the spreadsheet this action will use. You can search for and select any of the spreadsheets that you can access using the credentials you used to create the connection. - **Worksheet** is the name of the worksheet where you will add a row. - **Columns** is the area where you map the trigger fields to columns in the spreadsheet. This area, like the others, is different for different systems. In this example, click **Add Columns** to see all the columns from the spreadsheet listed and choose the ones you want to work with here: ![A step in the example action configuration to populate fields of a spreadsheet column](/mulesoft/current/en-us/composer/_images/images/action-step2.png) Choose which fields you want to act upon, and then map the fields you fetched with the trigger or previous actions with these: ![A step in the example action configuration to map fields](/mulesoft/current/en-us/composer/_images/images/action-step3.png) Map the fields delivered by the trigger to the spreadsheet rows you selected. In this example, **Email**, **FirstName**, and **LastName** will be mapped to the Google sheet columns **Email**, **First Name**, and **Last Name**. You don’t have to map all the fields fetched in your action or trigger connection. Remember, the selection pane (**Columns**) is different depending on the connection for this action and other choices. For a list of valid actions for each connection, see the reference topic for the system you are interested in. This is the complete action, ready for testing: ![All the steps in the example action configuration](/mulesoft/current/en-us/composer/_images/images/action-overview.png) The fields from Salesforce that are mapped to the Google Sheet fields are data pills, containers for everything that might be in a field (or other resource, depending on the connection). ## Data Pills Data pills contain the complexity of a data structure, making it easy to map data from triggers or previous actions. Using data pills, data mapping can be as simple or as complex as you need: - You can concatenate two or more data pills by mapping them to the same field, column, or other data target. - You can create a custom expression instead of simply mapping data pills to data targets, by select **Custom Express fx**. For example, you might want to add some text such as `Copied from Salesforce` after a data pill, to flag it for inspection. - You can construct a list of strings with multiple comma-separated data pills and manually-entered string values. If you enter a single data pill, Composer automatically converts that data pill to a list. When using the `list of strings` data pill, if you also select a data pill of the data type `string`, `number`, `boolean` or `date`, those data pills are appended to the existing list and the non-string data pills will be typecast to a `string` data type. If a data pill is a field with a null or blank value, and you map it to an optional field, Composer removes it from the flow. If you map it to a required field, an error occurs because a value is required. ## Flow Controls If you need to add logic to your flow beyond a basic action, you can use a For Each loop or an If/Else block. You’ll define the flow control and then specify the action to be taken based on the logic applied to the data fetched previously. ### For Each Loop A For Each loop acts on each record in a list. For example, if the flow fetches a set of contacts from Salesforce, you can loop through the list and copy each record to a row in a Google Sheet. ![An example action configuration with the For Each loop](/mulesoft/current/en-us/composer/_images/images/for-each-example.png) **Input list** is chosen from the list of records available from a previous action. In this example, a previous action fetched all the contact records associated with a single account. The rest of the steps are the actions that are to be performed on each record in the list. In this example, the action writes contacts to a Google Sheet, one record per row. ### If/Else Block An If/Else block takes a single record and checks to see if it meets conditions you specify. If it does, you define what actions to take. ![An example action configuration with the If Else block](/mulesoft/current/en-us/composer/_images/images/if-else-example.png) This example shows only one If branch: if the phone number on the record starts with `702`, then the first and last names are copied to a row in a Google Sheet. If a record doesn’t meet the criteria, no action is taken, and the flow moves on to the next action, since there is only one branch. You can add up to 20 conditions per branch and as many actions per branch as you need. Click **Add If** to add branches. After specifying all the branches you need, you can specify a fall-through action with **Add Else**. Be careful how you order your If statements. The action specified by the first branch whose conditions are met is the only action performed in the If/Else block. ## Test You can test your work after every trigger and action. As you test, you can add or delete triggers, actions, and flow controls. You can also change the connection you use in triggers or actions to another connection of the same system type. After testing is complete, you are ready to activate your flow. ## Related Resources - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Configuring and Managing Flows](https://docs.mulesoft.com/composer/ms_composer_flows) - [Activating a Flow](https://docs.mulesoft.com/composer/ms_composer_activation) - [Monitoring a Flow](https://docs.mulesoft.com/composer/ms_composer_monitoring) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # HTTP Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt HTTP Connector connects cloud applications that are not currently supported through dedicated connectors. Use HTTP Connector to connect to systems that Composer does not currently support to extend the capabilities of the systems that Composer does support. HTTP Connector for Composer uses [HTTP](https://www.digitalocean.com/community/tutorials/http-1-1-vs-http-2-what-s-the-difference#http-1-1) 1.1 to handle JSON data. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with the required credentials of that system. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. Provide the following connection information: > [!NOTE] The HTTP response timeout is 60 seconds and cannot be changed. Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Base URL The default location URL for the cloud application that the connection uses. Authorization The following authorization options are available: - **OAuth 2.0 Client Credentials** The OAuth 2.0 Client Credentials obtain an access token from a user-defined path. Provide a value for the following fields: - **Base URL** - **Client ID** - **Client Secret** - **Token URL** - **API Key** The API Key connects to applications without explicitly defining a user. You must add this key to all requests, and the cloud application identifies the origin of the request and completes the authorization. Provide a value for the following fields: - **Base URL** - **Name** - **Value** - **Sent As**: Select one of the following values: - **Header**: If selected, Composer adds the following header to the request: `Name: Value`. - **Query Parameter**: If selected, Composer adds the following query parameter to the request: `Name=Value`. - **Basic Authentication** The Basic Authentication method enables an HTTP user agent to provide a username and password when making an HTTP request. Provide a value for the following fields: - **Base URL** - **Username** - **Password** - **Bearer Token Authorization** Bearer Token Authorization is the authentication process that sends a header named `Authorization` with a value of `Bearer` and a token with every request. Provide a value for the following fields: - **Base URL** - **Token** ### Connect Your Target System in Composer Using OAuth 2.0 Using HTTP Connector, you can establish a connection with an [OAuth 2.0 Authorization Code Grant](https://auth0.com/intro-to-iam/what-is-oauth-2) to enable authorization. With this authorization, you can then access resources hosted by other apps such as Salesforce, Gmail, or Outlook 365. Before establishing a connection, you must create an OAuth Client in the target system. The process for creating an OAuth Client depends on each target system. The following tables provide configuration examples and details about required fields when connecting to a target system using an OAuth client: #### Fortnox > [!NOTE] To use the same **Client ID** and **Client Secret** in different flows, use the same > Composer connection and consider the allowed requests per minute. To use different Composer > connections, use different Fortnox environments.
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Fort Nox at admin@1342287

This should be your user.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://api.fortnox.se

Client ID

NmE4OTUzY2…​

Client Secret

wMTUtZWV…​

Scopes

companyinformation

For all available scopes, see OAuth 2.0 Scopes for Fortnox APIs.

Authorization URL

https://apps.fortnox.se/oauth-v1/auth

You must register your callback URL on the Fortnox account created application. Fortnox allows you to specify only one callback URL by application, so you must create different applications to specify different environment callback URLs.

Authorization URL Query Parameters

Parameter 1:

  • Key: access_type

  • Value: offline

Token Exchange URL

https://apps.fortnox.se/oauth-v1/token

Token Exchange Headers

Parameter 1:

  • Key: Authorization

  • Value: Basic NmE4OTUzY2MtMTk2Zi00MjZiLTgwMTUtZWVjMjY1OWI1MzAx

Fortnox requires a Basic authentication header in the Basic CREDENTIALS format, where CREDENTIALS is the Base64 encoding of Client ID and Client Secret, separated with a colon. For example:

  • Client ID: 8VurtMGDTeAI

  • Client Secret: yFKwme8LEQ

  • Credentials: OFZ1cnRNR0RUZUFJOnlGS3dtZThMRVE=

For more information, see Authentication.

Token Refresh URL

https://apps.fortnox.se/oauth-v1/token

Token Refresh Headers

Parameter 1:

  • Key: Authorization

  • Value: Basic NmE4OTUzY2MtMTk2Zi00MjZiLTgwMTUtZWVjMjY1OWI1MzAx

Fortnox requires a Basic authentication header in the Basic CREDENTIALS format, where CREDENTIALS is the Base64 encoding of Client ID and Client Secret, separated with a colon. For example:

  • Client ID: 8VurtMGDTeAI

  • Client Secret: yFKwme8LEQ

  • Credentials: OFZ1cnRNR0RUZUFJOnlGS3dtZThMRVE=

For more information, see Authentication.

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/3/companyinformation

#### Gmail
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Gmail john.smith@gmail.com connection

Including the Gmail email address aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://gmail.googleapis.com

Client ID

181298210352-mt5.apps.googleusercontent.com

Client Secret

YmmkNirf6zDc512u7MvPoJebP…​

Scopes

https://www.googleapis.com/auth/gmail.send https://www.googleapis.com/auth/gmail.readonly

For all available scopes, see OAuth 2.0 Scopes for Google APIs.

Authorization URL

https://accounts.google.com/o/oauth2/v2/auth

Authorization URL Query Parameters

Parameter 1:

  • Key: access_type

  • Value: offline

Parameter 2:

  • Key: prompt

  • Value: consent

Token Exchange URL

https://oauth2.googleapis.com/token

Token Refresh URL

https://oauth2.googleapis.com/token

Token Revoke URL

https://oauth2.googleapis.com/revoke

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/gmail/v1/users/me/profile

For more information, see the Gmail API documentation.

#### Google Calendar
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Calendar at john.smith@gmail.com

Including the Gmail email address aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://www.googleapis.com/calendar

Client ID

181298210352-mt5.apps.googleusercontent.com

Client Secret

YmmkNirf6zDc512u7MvPoJebP…​

Scopes

  • https://www.googleapis.com/auth/calendar.events

  • https://www.googleapis.com/auth/calendar.readonly

For all available scopes, see OAuth 2.0 Scopes for Google APIs.

Authorization URL

https://accounts.google.com/o/oauth2/v2/auth

Authorization URL Query Parameters

Parameter 1:

  • Key: access_type

  • Value: offline

Parameter 2:

  • Key: prompt

  • Value: consent

Token Exchange URL

https://oauth2.googleapis.com/token

Token Refresh URL

https://oauth2.googleapis.com/token

Token Revoke URL

https://oauth2.googleapis.com/revoke

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/v3/users/me/settings

For more information, see the Google Calendar API documentation.

#### Google Sheets
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Google Sheets at john.smith@gmail.com

Including the Gmail email address aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://www.googleapis.com

Client ID

181298210352-mt5.apps.googleusercontent.com

Client Secret

YmmkNirf6zDc512u7MvPoJebP…​

Scopes

  • https://www.googleapis.com/auth/spreadsheets

  • https://www.googleapis.com/auth/drive.readonly

  • https://www.googleapis.com/auth/drive.metadata.readonly

For more information, see the Google Drive API-specific authorization and authentication information documentation.

Authorization URL

https://accounts.google.com/o/oauth2/v2/auth

Authorization URL Query Parameters

Parameter 1:

  • Key: access_type

  • Value: offline

Parameter 2:

  • Key: prompt

  • Value: consent

Token Exchange URL

https://oauth2.googleapis.com/token

Token Refresh URL

https://oauth2.googleapis.com/token

Token Revoke URL

https://oauth2.googleapis.com/revoke

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/drive/v3/about?fields=user

For more information, see the Google Drive API-specific authorization and authentication information documentation.

#### Hubspot
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Hubspot Composer DEMO org

Including the Hubspot organization name aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://api.hubapi.com/

Client ID

63ddf8b7-c7b0-40f9-804…​

For more information, see the Hubspot documentation.

Client Secret

2100f863-944c-433c-a…​

Scopes

  • settings.users.read

  • crm.lists.read

  • settings.users.teams.read

  • crm.schemas.contacts.read

Authorization URL

https://app.hubspot.com/oauth/authorize

Token Exchange URL

https://api.hubapi.com/oauth/v1/token

Token Refresh URL

https://api.hubapi.com/oauth/v1/token

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

  • contacts/v1/lists/all/contacts/all?count=1

  • https://api.hubapi.com/application/settings/test/v1/actions/accounts-fetch

For more information, see the Hubspot OAuth 2.0 documentation.

#### Jira
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Jira at ocs.citizen.demo@gmail.com (STG)

Including the Gmail email address aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://api.atlassian.com/ex/jira/077bc6b6-f2ab-4cd6-a694-c469cb2d058d/rest/api/3

The value in this field is the Cloud ID for your Jira account, which is the Tenant ID parameter in the Base URL field.

Client ID

SgPehF9AZ5ECD63iUJpG2aPO3j9qNvXM

Client Secret

Yf8q-wbEJjeJIhx5iuE-BiydpL1oCj7wVy2gaoYDEMCe4xwWO_Q2vbjyJg6rGmD7L

Scopes

  • offline_access

  • read:jira-work

  • manage:jira-project

  • read:jira-user

  • write:jira-work

Authorization URL

https://auth.atlassian.com/authorize

You must register your callback URL when creating a Jira account. As a result, these credentials only work in staging environments.

Authorization URL Query Parameters

Parameter 1:

  • Key: audience

  • Value: api.atlassian.com

Parameter 2:

  • Key: prompt

  • Value: consent

Token Exchange URL

https://auth.atlassian.com/oauth/token

Token Refresh URL

https://auth.atlassian.com/oauth/token

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/myself

#### Microsoft Teams
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

My Microsoft Teams connection

Including the Microsoft Teams instance name aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://graph.microsoft.com

Client ID

1c325c1c-8fd5-419f-85dc-a69cc2f30a21

Client Secret

P8M8Q~nAXXckZeqGxR-gE3WJIOsw~rIkjdG8jc7G

Scopes

  • https://graph.microsoft.com/Mail.Read

  • https://graph.microsoft.com/User.Read

  • offline_access

Authorization URL

https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize

Tenant ID value: https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize

Token Exchange URL

https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token

Token Refresh URL

https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/v1.0/me

#### Outlook 365
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

My Outlook 365 connection

Including the Outlook instance name aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://graph.microsoft.com

Client ID

1c325c1c-8fd5-419f-85dc-a69cc2f30a21

Client Secret

P8M8Q~nAXXckZeqGxR-gE3WJIOsw~rIkjdG8jc7G

Scopes

  • https://graph.microsoft.com/Mail.Read

  • https://graph.microsoft.com/User.Read

  • offline_access

Authorization URL

https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/authorize

Token Exchange URL

https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token

Token Refresh URL

https://login.microsoftonline.com/9d7ee99b-dadd-4dfa-9bba-323e2f1f63b3/oauth2/v2.0/token

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/v1.0/me

-OR-

/v1.0/me/mailfolders/inbox/messages?$select=subject,from,receivedDateTime&$top=25&$orderby=receivedDateTime%20DESC

#### Procore (Production Environment)
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Procore Demo Org

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://api.procore.com

Client ID

43a4c94b7e225ad7a8d99cb4a0ae0de26efa298…

Client Secret

e84ee4db2f944a7b585ca110ac20793b5e6c0…

Authorization URL

https://login.procore.com/oauth/authorize

Token Exchange URL

https://login.procore.com/oauth/token

Token Refresh URL

https://login.procore.com/oauth/token

Token Revoke URL

https://login.procore.com/oauth/revoke

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/rest/v1.0/me

#### Procore (Sandbox Environment)
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Procore Sandbox Demo Org

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://sandbox.procore.com

Client ID

43a4c94b7e225ad7a8d99cb4a0ae0de26efa298…

Client Secret

e84ee4db2f944a7b585ca110ac20793b5e6c0…

Authorization URL

https://login-sandbox.procore.com/oauth/authorize

Token Exchange URL

https://login-sandbox.procore.com/oauth/token

Token Refresh URL

https://login-sandbox.procore.com/oauth/token

Token Revoke URL

https://login-sandbox.procore.com/oauth/revoke

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/rest/v1.0/me

#### QuickBooks > [!NOTE] Add the `Accept: application/json` HTTP header to your requests since QuickBooks returns > HTML by default.
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

My QuickBooks connection

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://sandbox-quickbooks.api.intuit.com

In your QuickBooks account, check for the realm ID or company ID. For example: 4620816365253449610.

Client ID

ABOCnl9CHHDDpZ0RASkhadwSVBa1…​

Client Secret

qwDPs7K1huLWn2ZfdeVHQgpyYr…​

Scopes

com.intuit.quickbooks.accounting

For more information about scopes, check your QuickBooks account. When you create your QuickBooks account, you have two scopes depending on the URLs you need to use.

Authorization URL

https://appcenter.intuit.com/connect/oauth2

You must register your callback URL in your QuickBooks account in your application configuration. QuickBooks allows you to register multiple callback URLs, so you can create one application for all your environments.

Token Exchange URL

https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer

Token Exchange Headers

Parameter 1:

  • Key

  • Value

Token Refresh URL

https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer

Token Refresh Headers

Parameter 1:

  • Key

  • Value

Token Revoke URL

https://developer.api.intuit.com/v2/oauth2/tokens/revoke

Token Revoke Headers

Parameter 1:

  • Key

  • Value

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/v3/company/{realmId}/companyinfo/{realmId}

#### Salesforce
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

My Salesforce Acme connection

Including the Salesforce instance name in this field aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://<instance>.my.salesforce.com

Client ID

3MVG9kBt168mda_.aAARdkSYhzS6mkIA5bVzvid_ppcSV44vtKUFV3J

The value in this field is the Salesforce Connected App Client ID.

Client Secret

620187E2CD2DAEF6725AA404EADDFD8FECB390FA854DB637B95E186

The value in this field is the Salesforce Connected App Secret.

Scopes

full refresh_token

Authorization URL

https://login.salesforce.com/services/oauth2/authorize

Authorization URL Query Parameters

  • Key: prompt

  • Value: login consent

Token Exchange URL

https://login.salesforce.com/services/oauth2/token

Token Refresh URL

https://login.salesforce.com/services/oauth2/token

Token Revoke URL

https://login.salesforce.com/services/oauth2/revoke

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/services/data/v55.0/

For more information, see the Salesforce REST API Developer Guide documentation.

#### Shopify
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Shopify at my.account@example.com (QA)

For more information, see the Shopify Partner Program.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://myowndevelopmentstore1.myshopify.com

Client ID

04bad9ea727686d3a61a47cc23772587

Client Secret

668ca7383d2558aa9f4270550a4dff62

Scopes

  • write_customers

  • write_orders

  • write_products

Authorization Headers

  • Authorization Header Name: X-Shopify-Access-Token

  • Authorization Header Value Prefix: Bearer Prefix

  • Authorization Header Custom Value Prefix: None

Token Exchange URL

https://myowndevelopmentstore1.myshopify.com/admin/oauth/access_token

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/admin/api/2022-07/shop.json

#### Slack
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

My Slack inspiration workspace connection

Including the Slack workspace name aids in identifying the connection from a list.

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://<my-workspace>.slack.com

Client ID

3806739369586.3819433415633

The value in this field is the Slack App Client ID.

Client Secret

d1cc08d9b2bf8573fa10e43f458d51a9

The value in this field is the Slack App Secret.

Scopes

chat:write

Authorization URL

https://slack.com/oauth/v2/authorize

Token Exchange URL

https://slack.com/api/oauth.v2.access

Token Refresh URL

Leave the value in this field blank.

Token Revoke URL

https://slack.com/api/auth.revoke

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/api/api.test

#### Xero
StepFieldExample ValueNotes

Connect to your HTTP Account

Connection Display Name

Xero Demo Company (US) connection

Authorization Type

OAuth 2.0 Authorization Code

The value in this field is fixed.

Base URL

https://api.xero.com/

Client ID

1AAE161E43B448C2A17B59

Client Secret

aMLNRJr3-oAaFtQOx1B-uf19qT

Scopes

  • offline_access

    • openid

    • profile

    • email

  • accounting.transactions

  • accounting.attachments

  • accounting.reports.read

  • accounting.settings

  • accounting.contacts

  • accounting.journals.read

For more information, see the Xero Developer documentation.

Authorization URL

https://login.xero.com/identity/connect/authorize

Token Exchange URL

https://identity.xero.com/connect/token

Token Refresh URL

https://identity.xero.com/connect/token

Token Revoke URL

https://identity.xero.com/connect/revocation

Access Token Expired Code

401

Test HTTP Connection

Request Method

Get

Request Path

/api.xro/2.0/Users

For more information, see the Xero documentation:

Request Path Headers

  • Key: Xero-Tenant-Id

  • Value: 4268faf8-82a2-44e2-8ea2-4ec8f6ea3a26

For more information, see the following:

#### Configure an OAuth 2.0 Authorization Code Connection When creating an OAuth 2.0 Authorization Code connection with HTTP Connector, you must provide additional information to establish the connection. To establish an OAuth 2.0 Connection: 1. Open a flow or create a new flow. 2. Select a trigger or use the scheduler. 3. Click or create an HTTP connection for the action. 4. In the **Connect to your HTTP Account** window, in the **Authorization Type** field, select **OAuth 2.0 Authorization Code** and provide values for the following fields: 1. **Authorization URL**: The URL that starts the OAuth 2.0 flow. 2. **Authorization URL Query Parameters**: The key-value pairs that appear after the question mark in the URL. Under the OAuth Authorization Code Grant type, the authorization request sends data as query parameters. Composer handles these query parameters automatically, but sometimes additional parameters are useful. For example, the Google API needs `access_token=offline` to emit a refresh token. Without this parameter, a connection will expire after an hour. 3. **Token Exchange URL**: The URL where the authorization code can be exchanged for an access token. - Optionally, if you click **Add Headers**, provide a value for the following fields: - **Key** - **Value** 4. **Token Refresh URL (Optional)**: The URL where the token can be refreshed. This field is applicable only if the application marks the tokens as expired after a certain period of time. - Optionally, if you click **Add Headers**, provide a value for the following fields: - **Key** - **Value** 5. **Token Revoke URL (Optional)**: The URL where the token can be revoked or removed. - Optionally, if you click **Add Headers**, provide a value for the following fields: - **Key** - **Value** 5. Click **Next**. The OAuth 2.0 Authorization Code Connection is configured. You can now test the connection. ### Test the Connection After you establish a connection method, you can test the connection. While Composer tests other connectors automatically in the background, you must test HTTP Connector. You can decide which page to use for the test. Testing the connection is important because you cannot edit the connection later. To test the connection, provide a value for the following fields: - **Request Method** - **Request Path**: The value in this field is relative to the Base URL. - **Request Headers** - **Key** - **Value** - **Request Body**: This option appears when the HTTP method is POST and is the body of the request message. Click **Connect** to test the connection. A message appears to indicate the connection was created successfully (indicated by a response code of `200`) or that an error occurred. Note that if the application requires a token exchange to transact data, you need to create a token for each use case. For example, in Salesforce Marketing Cloud, this is needed because the first step in Flow 1 will generate a token, which might get invalidated by a similar step in Flow 2. ## HTTP Connector Fields The following fields are applicable for HTTP Connector:
NameTypeDescription

Relative URL

String

URL for the target of the request without considering the base path.

Action

String

The type of request. You must choose between Request or Paginated Request.

HTTP Method

String

The HTTP method for the request. The following HTTP methods are available:

  • GET: Retrieves information from the server.

  • POST: Sends information to the server.

  • PUT: Updates information in existing records on the server.

  • PATCH: Updates specific data for existing records on the server.

  • DELETE: Deletes information in existing records on the server.

Path

String

Identifies the specific resource in the server that you want to access.

Headers

Object

Allows you and the server to pass additional information with an HTTP request or response. Consists of its case-insensitive name (key) followed by a colon, and then followed by its value. If you add headers, you must provide values for the Key and Value fields.

If you specify a POST, PUT, PATCH, or DELETE method and you add a request body, you must add the Content-Type: application/json header. Check the connected API for the desired field name for the Content-Type: application/json header since some APIs require different names for this header.

If the header is Content-Type: application/json, then the minimum valid JSON ({}, "") is required as part of the request body. Note that [] is not supported at the root of the request body.

Query Parameters

Object

Query parameters to include in the request. If you add query parameters, you must provide values for the Key and Value fields.

Example Request

String

An example request in JSON format. If you provide a value for this field, Composer parses the example to deduce its fields. The fields are then available for entering data to configure the request operation. To view the fields Composer deduced from the example, click Select Additional Fields. The example JSON value provided in this field must be different than the value provided in the Example Response field.

Example Response

String

An example response in JSON format. If you provide a value for this field, Composer parses the example JSON payload and provides data pills that match the JSON fields.

Array Path

String

The path to the JSON array. The value from the Array Path field is selected by default, but a different value can be selected from the dropdown. This value only appears if the value in the Action field is set to Paginated Request.

Pagination Type

String

The type of pagination for the request. The following Pagination Types are available:

  • Link Header: If this value is selected, provide a value in the Link Relation field.

  • Marker: If this value is selected, provide a value in the following fields:

    • Marker Parameter Name

    • Next Marker Expression

  • Next URL: If this value is selected, provide a value in the Next URL Expression field.

  • Offset: If this value is selected, provide a value in the Offset Parameter Name field.

  • Page Number: If this value is selected, provide a value in provide a value in the Page Number Parameter Name field.

Maximum Number of Pages

Number

The maximum number of pages returned from the API in requests.

## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Request in HTTP When **Request** is selected in the **Action** field, a request in HTTP returns the fields of the response payload. A value is required for the following fields: - **Action** - **HTTP Method** - **Path** - **Example Response** - Optionally, if you click **Add Query Parameters**, provide a value for the following fields: - **Key** - **Value** - Optionally, if you click **Add Headers**, provide a value for the following fields: - **Key** - **Value** Paginated Request in HTTP When **Paginated Request** is selected in the **Action** field, a paginated HTTP request is initiated. A Paginated Request returns a list of items that subsequent flow steps can use in a For Each Loop. Composer automatically uses the pagination configuration to fetch data from the API. A value is required for the following fields: - **Action** - **HTTP Method** - **Path** - **Example Response** - **Array Path** - **Pagination Type** - Optionally, if you click **Add Query Parameters**, provide a value for the following fields: - **Key** - **Value** - Optionally, if you click **Add Headers**, provide a value for the following fields: - **Key** - **Value** ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # HubSpot Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt HubSpot offers a full platform of marketing, sales, customer service, and CRM software, as well as methodology, resources, and support, to help businesses grow. > [!NOTE] You can sync to HubSpot Company and Contact objects only. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Display Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Bearer token The HubSpot account access token. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: On New Record Triggers when a new Company or Contact record is created. On New or Updated Record Triggers when a new Company or Contact record is created or updated. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create new record Create a company or a contact in HubSpot. To create a new company, provide a value for **Company Name**. To create a new contact, provide a value for **Contact Name**. Update a record Update a company or a contact in HubSpot as specified by an external ID. To update a company or a contact, provide a value for **HubSpot ID**. Create or update record Create or update a company or a contact in HubSpot in a single step. To create or update a company, provide a value for **HubSpot ID**. To create or update a contact, provide a value for **External ID Field to Match**. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Invoking a Composer Flow > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Invoke a Composer flow from external systems to enable deeper interoperability and integrated capabilities across Salesforce. You can also authenticate every invocable flow for a secure and protected automation experience, create API-compatible invocable actions for seamless integration with diverse systems and applications, and build powerful automations by leveraging the built-in support for input and output fields. When your invocable flow is activated, Composer exposes a unique flow URL and a unique pair of client credentials (client ID and client secret) so that your flow can be invoked from external systems. You can reset these credentials for security best practices. Invoke invocable flows by using an HTTP call to the flow URL and using the flow client credentials as authentication. To invoke a Composer flow: 1. [Create an invocable Composer flow.](#create-an-invocable-composer-flow) 2. [Invoke the Composer flow from an external system.](#invoke-the-composer-flow-from-an-external-system) ## Create an Invocable Composer Flow Create an invocable Composer flow so that you can invoke it later from an external system: 1. [Configure your invocable Composer flow.](#configure-your-invocable-composer-flow) 2. [Test your invocable Composer flow.](#test-your-invocable-composer-flow) 3. [Activate your invocable Composer flow.](#activate-your-invocable-composer-flow) ### Configure Your Invocable Composer Flow To configure an invocable Composer flow: 1. Access Composer. 2. [Create a new flow from scratch](https://docs.mulesoft.com/composer/ms_composer_using_a_flow_and_creating_trigger#create-a-flow). 3. In the **What Should Start This Flow?** dialog, in the **Interaction** section, click **Invoke** to create an invocable flow. The **Trigger: Invoke this flow from an external system via HTTP POST Request** trigger appears. 4. Optionally, add input fields. For example, you can add an `Opportunity ID` input field that returns a value if Salesforce passes the value of an opportunity ID to the Composer flow. To add input fields, click **Add Input Fields**. You can define input fields by using the **Visual Editor** or **Sample JSON Editor**. - To define input fields using the **Visual Editor**: 1. In the **Input Name** field, enter a unique name for the input field. The name must begin with a letter and cannot contain spaces. 2. In the **Data Type** dropdown, select the data type you want to use for the input field. The following [data types](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#data-types) are supported: `String`, `Number`, `Boolean`, `Date`, and `DateTime`. 3. Optionally, add a value for **Sample Value** or **Help Text** to test the flow. 4. To add more input fields, click **Add Input**. 5. Click **Apply**. The count of input fields you added appears next to **Input Fields**, displaying one or more new input fields added to the flow. 6. Optionally, to change the input fields, click **Add Input Fields** to open the **Visual Editor**. - To define input fields by using the Sample **JSON Editor**: 1. In the **Example Request** window, paste or enter the JSON sample. Example: JSON sample in the **Sample JSON Editor** window ```JSON { { "name": "ben", "age": 100 } } ``` Unlike the **Visual Editor**, the **Sample JSON Editor** supports objects, arrays, and null values. Example: Complex JSON sample in the **Sample JSON Editor** window ```JSON { "data": { "favoriteNumbers": [3, 7, 13, 17, 23] } } ``` 2. Click **Apply**. The count of the of input fields you added appears next to **Input Fields**, displaying one or more new input fields added to the flow. 3. Optionally, to change the input fields, click **Add Input Fields** to open the **Sample JSON Editor** to edit the input fields. 5. Optionally, add output fields. If specified, output fields are returned as the JSON response. For example, if there is an `Opportunity ID` input field, you can add the value of the ID as an output field, in which the following JSON response is returned with a 200 status code: ```JSON { "opportunityId": "" } ``` To add output fields: 1. Click **Add Output Fields**. 2. In the **Label** field, enter a unique name for the output field. The name must begin with a letter. Avoid including spaces in this field since spaces are escaped and replaced with x20. 3. In the **Data Type** dropdown, select the data type you want to use for the output field. The following [data types](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#data-types) are supported: `String`, `Number`, `Boolean`, `Date`, and `DateTime`. If you select **List**, in the **List Item Type** field, select: - **String**, **Number**, or **Boolean** to return a list that contains primitive data types - **Object** to return a list of objects, for example, the output of the **Get Records** action 4. Click **Apply**. 5. Once output fields are added, you can then map data pills, custom expressions, or plain text. For example, map an input field to the output field. - `String`, `Number`, `Boolean`, `Date`, or `DateTime`, a value is required. You can enter a value manually, select any existing data pill (including variables) from your flow, select a [Picklist Mapping](https://docs.mulesoft.com/composer/ms_composer_using_actions_in_a_flow#create-a-picklist-mapping) (for `String` variables) or you can select the [**Custom Expression Editor**](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#add-custom-expression-to-an-action) to create a custom expression. - `List`, a value is required. You can enter a value manually. For primitive list types (`String`, `Number`, `Boolean`, `Date`, or `DateTime`), you can create a list statically using the [**Custom Expression Editor**](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#add-custom-expression-to-an-action) or [map in a list data pill](https://docs.mulesoft.com/composer/ms_composer_using_actions_in_a_flow#create-a-picklist-mapping). For List, select either: - **Dynamic List** to create multiple items in the list. Use a list pill to reference the number of items created. Then, map the fields of the elements of the list. - **Static List**, and then initialize the list with as many items as you need. If you do not add any items, the list is empty by default. 6. Optionally to change the output fields, click **Add Output Fields** to open the editor to edit the output fields. 6. Complete the flow. For example, configure system actions for the flow, define variables, or create flow controls as described in [Configuring and Managing Flows](https://docs.mulesoft.com/composer/ms_composer_flows). 7. Click **Save**. To delete an invocable step from your flow: 1. Access the flow that contains the invocable flow step to delete. 2. In the corner of the step, click **…** > **Delete step**. ### Test Your Invocable Composer Flow To test your invocable Composer flow: 1. In your invocable flow, click **Test**. If you added input fields, the **Test Flow** window appears. 2. Enter a sample value for the input field or review the complex JSON to test the flow. 3. Click **Test Flow**. The testing output appears. Using this output, you can verify if the flow returns the expected values in the sample output of the main canvas. ### Activate Your Invocable Composer Flow To activate your invocable Composer flow: 1. In your invocable flow, click **Activate**. The flow details page appears with a message indicating that the flow is now active. When an invocable flow is activated for the first time, the org admin receives an email. 2. Click **Flow Credentials** to view the flow data that invokes the flow from the external system. If your flow is deactivated for more than 30 days, the flow credentials will expire. New flow credentials are generated the next time your flow is activated. 3. You can reset the flow credentials periodically to ensure continuous security. In the **Flow Credentials** window, click **Reset Client Secret**. The **Client Secret** field is updated. Click the clipboard icon next to the field to copy the new **Client Secret** value. Once the client secret is reset, the previous client secret no longer works. You must manually share the new client secret to external systems that invoke this Composer flow. 4. Ensure the following fields have values: - **URL**: Unique URL of the flow you are invoking. - **Client ID**: Username or unique identifier to authenticate this flow. - **Client Secret**: Password or secret to authenticate this flow. - **OpenAPI Specification**: OpenAPI specification that describes the structure of the underlying API of this flow. 5. Click **Close**. ## Invoke the Composer Flow from an External System After creating an invocable flow in Composer, you can invoke it from an external system: - [Invoke a Composer Flow from Flow Builder](#invoke-a-composer-flow-from-flow-builder) - [Invoke a Composer Flow from Flow Orchestration](#invoke-a-composer-flow-from-flow-orchestration) - [Invoke a Composer Flow from Another Composer Flow](#invoke-a-composer-flow-from-another-composer-flow) - [Invoke a Composer Flow from an Apex Callout](#invoke-a-composer-flow-from-an-apex-callout) - [Invoke a Composer Flow from a cURL Command](#invoke-a-composer-flow-from-a-curl-command) ### Invoke a Composer Flow from Flow Builder Invoke a Composer flow directly from Flow Builder to build integrations without writing a single line of code. For example, use invocable flows to build integrations in Flow Builder that connect to third-party systems such as NetSuite, Jira, and Workday. Some use cases include using Flow Builder to call an invocable Composer flow that: - Creates a Jira issue when a record is created in Salesforce. - Retrieves an order status from NetSuite and posts a message in Slack. - Gets real-time credit scores when a user goes through a screen flow. - Retrieves an order status from NetSuite when a user enters an order ID in the screen flow. To invoke a Composer flow from Flow Builder: 1. [Set up Salesforce for invocable flows](#set-up-salesforce-for-invocable-flows). 2. [Set up Flow Builder for invocable flows](#set-up-flow-builder-for-invocable-flows). #### Set Up Salesforce for Invocable Flows After creating your Composer flow, set up your Salesforce org to invoke flows in Composer: 1. Access your Salesforce org. 2. Create a new set of credentials that use the same credentials that you use for Composer. Create an external credential and a named credential. If your invocable Composer flow does not contain input fields, add a new `Content-Length` custom header that has a value of `0` in the external credential and named credential to avoid an HTTP 411 response. To create an external credential and a named credential: 1. [Create and edit a custom authentication external credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_custom_auth_ext_cred.htm&type=5). 2. [Enable external credential principals](https://help.salesforce.com/s/articleView?id=xcloud.nc_enable_ext_cred_principal.htm&type=5). 3. [Use basic authentication with named credentials](https://help.salesforce.com/s/articleView?id=xcloud.nc_custom_headers_basic_auth.htm&type=5). 4. [Create and edit a named credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_named_credential.htm&type=5). 3. Register your external service by copying the API specification from the Composer flow as described in [Paste the JSON-formatted Schema Into Your Browser](https://help.salesforce.com/s/articleView?id=platform.external_services_register_json.htm&type=5). #### Set Up Flow Builder for Invocable Flows After setting up Salesforce for invocable flows, you can call the Composer flow from Flow Builder: 1. Access your Salesforce org. 2. Go to **Setup** > **Process Automation** > **Flows**. 3. Click **New Flow** to create a new flow in Flow Builder. 4. Select the type of flow you want to create, for example, a **Record-Triggered Flow**, and then click **Create**. 5. Configure the start of the flow. If you create a record-triggered flow, select **Run Asynchronously** to avoid errors. 6. Set up an invocable action. Click **+** to add a new element and then click **Action**. 7. In **Filter By**, select **Type** and click **External Service**. 8. Select the action of the invocable flow from the external service. 9. Enter a value for the **Label** and **API Name** fields. 10. If you are invoking a Composer flow with inputs, follow these steps: In **Set Input Values**, for **body**, set the input value to the external service that triggers the Composer flow. To set the input value, click **New Resource** and ensure the following fields have values: - **Resource Type**: Select a resource type. - **API Name**: Enter a name for the API. - **Data Type**: Select a data type. - **Apex Class**: Search for an Apex class. - **Availability Outside the Flow**: Select **Available for input** and **Available for output** if needed. For example, if Salesforce passes the value of an opportunity ID to the Composer flow, the values are: - **Resource Type**: `Variable` - **API Name**: `InvocableFlowInputPayload` - **Data Type**: `Apex-Defined` - **Apex Class**: `ExternalService__InvocableFlowTest_invoke_IN_body` - **Availability Outside the Flow**: **Available for input** and **Available for output** 11. Click **Done**. The invocable action is set up. 12. Click **Done**. 13. Add an assignment by clicking **+** above the action to add a new element and then click **Assignment**. 14. Enter a **Label** and **API Name**. 15. Set variable values: - **Variable**: Enter the **API Name** of the new resource from step 10. - **Operator**: Select the operator to indicate or change the value. - **Value**: The value is assigned to the input fields when creating the invocable flow. For example, to set a value from a Salesforce record to an opportunity ID variable, the values are: - **Variable**: `{!InvocableFlowInputPayload.opportunityId}` - **Operator**: `equals` - **Value**: `{!$Record.id}` 16. If you are invoking a Composer flow with outputs, you can use the invocable flow output in your Salesforce flow. For example, if your invocable flow returns an opportunity ID, you can use the **Update Records** flow element to assign this opportunity ID to any record field. In the **Set Field Values for the Account Record** section, in the **Value** field dropdown, your invocable flow output is available by selecting the `Outputs from ActionName > 200 > [Available Output Values]` option, in which `ActionName` is the Label or API Name from step 9 and `Available Output Values` is the outputs from the flow, as interpreted from the API specification added in the external service. Then, in the **Field** field, you can select any field on the record that you want to update. 17. Save the flow. Enter a **Flow Label** and **Flow API Name**. 18. Click **Save**. 19. Debug the flow as described in [Debug a Flow in Flow Builder](https://help.salesforce.com/s/articleView?id=platform.flow_test_debug.htm&type=5). 20. Test the flow as described in [Test a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_concepts_testing.htm&type=5). 21. Activate the flow as described in [Activate or Deactivate a Flow](https://help.salesforce.com/s/articleView?id=platform.flow_distribute_activate.htm&type=5). ### Invoke a Composer Flow from Flow Orchestration Use Flow Orchestration to create complex multi-step processes. Invoke a Composer flow in Flow Orchestration to enhance workflow automation and increase scalability. To invoke a Composer flow from Flow Orchestration: 1. [Set up Salesforce for invocable flows](#set-up-salesforce-for-invocable-flows-orch). 2. [Set up Flow Orchestration for invocable flows](#set-up-flow-orchestration-for-invocable-flows). #### Set Up Salesforce for Invocable Flows After creating your Composer flow, set up your Salesforce org to invoke flows in Composer: 1. Access your Salesforce org. 2. Create a new set of credentials that use the same credentials that you use for Composer. Create an external credential and a named credential. If your invocable Composer flow does not contain input fields, add a new `Content-Length` custom header that has a value of `0` in the external credential and named credential to avoid an HTTP 411 response. To create an external credential and a named credential: 1. [Create and edit a custom authentication external credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_custom_auth_ext_cred.htm&type=5). 2. [Enable external credential principals](https://help.salesforce.com/s/articleView?id=xcloud.nc_enable_ext_cred_principal.htm&type=5). 3. [Use basic authentication with named credentials](https://help.salesforce.com/s/articleView?id=xcloud.nc_custom_headers_basic_auth.htm&type=5). 4. [Create and edit a named credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_named_credential.htm&type=5). Note that you must add the **Automated Process** user to the **Permission Sets** assignments. For more information, refer to [Assign a Permission Set to Multiple Users](https://help.salesforce.com/s/articleView?id=platform.perm_sets_manage_assignments.htm&type=5). 3. Register your external service by copying the API specification from the Composer flow as described in [Paste the JSON-formatted Schema Into Your Browser](https://help.salesforce.com/s/articleView?id=platform.external_services_register_json.htm&type=5). #### Set Up Flow Orchestration for Invocable Flows After setting up Salesforce for invocable flows, you can call the Composer flow from Flow Orchestration: 1. First, [set up Flow Builder for invocable flows](#set-up-flow-builder-for-invocable-flows) before setting up Flow Orchestration. 2. Click **New Flow** > **All + Templates** > **Flow Orchestration**. Select either **Autolaunched Orchestration (No Trigger)** or **Record-Triggered Orchestration** and click **Create**. 1. If you select **Record-Triggered Orchestration**, select the object, configure the trigger, and set entry conditions. Click **Save**. 3. Click **+** to add a new element and then click **Stage**. 4. Enter a value for the **Label** and **API Name** fields and select a condition. 5. Click **Add Step** and click **Background Step**. 6. Enter a value for the **Label** and **API Name** fields and select a condition and an action. 7. Select the **Contains external callouts or pause elements** checkbox. 8. Click **Save**. 9. Click **Activate**. ### Invoke a Composer Flow from Another Composer Flow You can create an invocable flow in Composer and invoke it from another Composer flow. To invoke a Composer flow from another Composer flow: 1. [Create a new flow from scratch](https://docs.mulesoft.com/composer/ms_composer_using_a_flow_and_creating_trigger#create-a-flow). 2. Click **+** > **System Event** and select **HTTP**. 3. Configure your HTTP connection. For more information, refer to HTTP Connector [Connections](https://docs.mulesoft.com/composer/ms_composer_http_reference#connections). Ensure that the following fields have these values: - **Authorization Type**: `Basic Authentication` - **Base URL**: URL of the invocable flow - **Username**: Client ID of the invocable flow - **Password**: Client secret of the invocable flow 4. Click **Next**. 5. Configure the fields to test your HTTP connection. For more information, refer to [Test the Connection](https://docs.mulesoft.com/composer/ms_composer_http_reference#test-the-connection). Ensure that the following fields have these values: - **Request Method**: `POST` - **Request Path**: `/` - **Request Headers** - **Key**: `Content-Type` - **Value**: `application/json` - **Request Body**: Input fields of the invocable flow 6. Click **Connect**. After the connection is created, a flow can invoke another invocable flow. ### Invoke a Composer Flow from an Apex Callout Invoke a Composer flow from Apex classes using an Apex callout. Calling a Composer flow from Apex enables more flexibility because you can call the Composer flow from a Salesforce trigger, an Apex job, an Apex controller, or a Lightning Web Component (via an Apex controller). Calling a Composer flow from a Salesforce trigger or an Apex controller is immediate, whereas calling a Composer flow as part of a flow or from an Apex job is asynchronous. To invoke a Composer flow from an Apex callout: 1. [Set up Salesforce for invocable flows](#set-up-salesforce-for-invocable-flows-apex). 2. [Use Apex classes to trigger invocable flows](#use-apex-classes-to-trigger-invocable-flows). #### Set Up Salesforce for Invocable Flows After creating your Composer flow, set up your Salesforce org to invoke flows in Composer: 1. Access your Salesforce org. 2. Create a new set of credentials that use the same credentials that you use for Composer. Create an external credential and a named credential. If your invocable Composer flow does not contain input fields, add a new `Content-Length` custom header that has a value of `0` in the external credential and named credential to avoid an HTTP 411 response. To create an external credential and a named credential: 1. [Create and edit a custom authentication external credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_custom_auth_ext_cred.htm&type=5). 2. [Enable external credential principals](https://help.salesforce.com/s/articleView?id=xcloud.nc_enable_ext_cred_principal.htm&type=5). 3. [Use basic authentication with named credentials](https://help.salesforce.com/s/articleView?id=xcloud.nc_custom_headers_basic_auth.htm&type=5). 4. [Create and edit a named credential](https://help.salesforce.com/s/articleView?id=xcloud.nc_create_edit_named_credential.htm&type=5). 3. Register your external service by copying the API specification from the Composer flow as described in [Paste the JSON-formatted Schema Into Your Browser](https://help.salesforce.com/s/articleView?id=platform.external_services_register_json.htm&type=5). #### Use Apex Classes to Trigger Invocable Flows After setting up Salesforce for invocable flows, you can call the Composer flow from Apex classes using an Apex callout: 1. Access your Salesforce org. 2. Go to **Setup** > **Custom Code** > **Apex Classes**. 3. When an external service is created using the API specification from the Composer flow, Salesforce creates some Apex classes automatically. For example, suppose there is an invocable Composer flow that creates a Google Calendar meeting every time an opportunity in Salesforce is updated. The following example is an Apex class that represents the calendar meeting request body: // \[SERVICE\] GcalComposer // \[OBJECT\] GcalComposer.invoke.IN.body global class GcalComposer\_invoke\_IN\_body { // \[PROPERTY\] summary @AuraEnabled global String summary {get; set{ this.summary = value; this.summary\_set = true; }} global Boolean summary\_set {get; set;} // \[PROPERTY\] description @AuraEnabled global String description {get; set{ this.description = value; this.description\_set = true; }} global Boolean description\_set {get; set;} } You can view all of the Apex classes created automatically by Salesforce under the **Apex Classes** section. The only additional step is to write Apex code to use the external service Apex classes created automatically by Salesforce. Continuing with the previous example, the following code calls out to the invocable flow to create the Google Calendar meeting: public class ComposerGcalFlow { @future(callout=true) public static void invokeComposerFlow(String summary, String description) { ExternalService.GcalComposer\_invoke\_IN\_body body = new ExternalService.GcalComposer\_invoke\_IN\_body(); body.summary = summary; body.description = description; ExternalService.GcalComposer.invoke\_Request request = new ExternalService.GcalComposer.invoke\_Request(); request.body = body; ExternalService.GcalComposer service = new ExternalService.GcalComposer(); ExternalService.GcalComposer.invoke\_Response response = service.invoke(request); } } The callout to the invocable flow code can be made from a Salesforce trigger. In the following example, the invocable Composer flow is called every time an opportunity is updated: trigger OpportunityUpdate on Opportunity (after update) { for (Opportunity opp: Trigger.New){ ComposerGcalFlow.invokeComposerFlow(‘Opportunity ‘ + opp.Name + ‘updated’,opp.description); } } For more information about Apex callout limits and limitations, refer to [Callout Limits and Limitations](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_callouts_timeouts.htm). For more information about Apex, refer to [Apex Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm). ### Invoke a Composer Flow from a cURL Command You can invoke a Composer flow through a cURL command. Because each invocable Composer flow generates a public URL, you can use the URL to invoke the flow from your terminal. Invoking a Composer flow from a cURL command is beneficial because cURL commands can be used in scripts or code to automate business cases. cURL commands are also generally easy to share, modify, and test. For example, suppose there is a flow that calculates some basic math and also returns a string. The flow takes three input values (`a`, `b`, and `Message`) and returns five output values (`Output caption`, `Quotient`, `Product`, `Difference`, and `Sum`). The following cURL command invokes the Composer flow, in which `` is the flow URL and `` is the Base64 encoding of the client ID concatenated with a colon followed by the client secret: curl "" -H "Authorization: Basic " -X POST --data ' { "a": 100, "b": 30, "Message": "Basic Math Ops" } ' -H "Content-Type: application/json" The example response is: ```JSON { "Output caption": "Basic Math Ops", "Quotient": 3.333333333333333333333333333333333, "Product": 3000, "Difference": 70, "Sum": 130 } ``` ## Publish the Flow to Salesforce or an Anypoint Organization After activating your flow, you can publish the flow to your Salesforce organization. You must have the [Automation Starter or Automation Advanced subscription package](https://docs.mulesoft.com/general/automation-credits-usage-and-rates) to use this service. ## Troubleshooting When an external system successfully invokes a Composer flow, an HTTP 200 response occurs. To troubleshoot invocable flows, become familiar with the information about interpreting commonly thrown exception messages. ### Missing Required Input Parameters If a Composer flow requires input fields and the external system does not pass these fields, an HTTP 400 response occurs. ### Invalid Credentials If a Composer flow has invalid credentials, an HTTP 401 response occurs. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) - [Trail: Build Flows with Flow Builder](https://trailhead.salesforce.com/content/learn/trails/build-flows-with-flow-builder) --- product: Composer --- # Jira Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt MuleSoft Composer’s Jira Connector automates issue tracking and project management workflows between Jira and other systems. You can create, update, and retrieve Jira issues automatically, sync project data across applications, and streamline support case escalation. The connector supports both standard and custom fields, enabling comprehensive integration with your existing Jira projects and workflows. To use Jira Connector with Composer, you must have the _Administrator Jira_ global permission. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Organization Site URL Enter the URL of the Jira organization containing the sandbox or production environment to which you want to connect. If you do not specify a value in the **Organization Site URL** field, the connection uses the first URL listed in the `/resources` endpoint of the Atlassian API. Set the **Organization Site URL** field for every connection if you want the connection to use a specific organization instead of a default organization. For more information about Jira organizations, see the [Jira documentation](https://support.atlassian.com/organization-administration/docs/get-started-with-an-atlassian-organization/). To connect to a Jira organization via an Atlassian account: 1. In the **Connect to your Jira Account** window, in the **Organization Site URL** field, enter the Jira organization URL. For example, `https://orgname.atlassian.net`. 2. Click **Connect**. An Atlassian window appears, indicating that Composer is requesting access to an Atlassian account. 3. In the window, in the **Authorize for site** dropdown, select the organization you want to use and then click **Accept**. Composer is now connected to your Jira organization. Username The OAuth username that you use to log in to Jira. Password The OAuth password that you use to log in to Jira. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New issue with Custom Fields Checks for a new issue with Custom fields created in Jira. New issue with Standard Fields only Checks for a new issue with Standard fields created in Jira. Update issue with Custom Fields was updated or created Checks for updated or created issues with Custom fields in Jira. Update issue with Standard Fields only was updated or created Checks for updated or created issues with Standard fields in Jira. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create issue with custom fields Creates a new issue within the selected project. Provide a value for the following fields: - **Project** - **Key** - **Summary** - **Type** - **Status** - **Priority** Update issue with custom fields Updates specified Custom field values. Provide a value for the following fields: - **Issue ID or Key** - **Notify Users** Update issue with standard fields only Updates specified Standard field values. Provide a value for the following fields: - **Issue ID or Key** - **Notify Users** Get issue Returns details for a specific issue. Provide a value for **Issue ID or Key**. Add comment to issue Creates and adds a comment to an existing issue. Provide a value for the following fields: - **Issue ID or Key** - **Comment Text** Create project Creates a new project based on a project type template in Jira. Provide a value for the following fields: - **Key** - **Name** - **Lead Account ID** - **Project Type Key**: The value in this field must begin with an uppercase letter followed by one or more uppercase letters or numbers. Get project Returns the project details in Jira. Provide a value for **Project ID** or **Key**. Retrieve project Retrieves the project details for an existing project in Jira. Provide a value for **Project ID** or **Key**. Retrieve attachments for an issue Returns all attachments for this issue. This returns the files' metadata but not the contents of the files. The files are ordered by the date that they were uploaded. Provide a value for **Project ID** or **Key**. Retrieve attachment Returns a URL redirect to the raw file for a specified file attachment. Provide a value for **Attachment ID**. Upload an attachment for an issue Uploads an attachment for a Jira issue. Provide a value for the following fields: - **Issue ID or Key** - **File Name** ## Custom Fields Using MuleSoft Composer, you can access Standard custom field values in Jira for actions and triggers that you set in the Jira issue. Custom fields containing the following list components are not currently supported: - Text fields (multi-line) - Labels - Checkboxes - Radio buttons - Select lists (multiple-choice) - Select lists (cascading) - User picker ## Standard Fields The following standard fields are not supported at this time: - **Affects version** - **Fix version** - **Environment** - **Component** ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Known Issues and Limitations for MuleSoft Composer > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The following list displays known issues and limitations for MuleSoft Composer. The list is sorted by the date in which the known issue or limitation appeared. ## October 22, 2026 ### Composer Platform
Known IssueWorkaroundID

When you test a flow, Composer tracks a limited number of tracking notifications for each flow execution (100 by default) to show step-by-step results. When a flow generates more notifications, Composer drops the oldest ones. As a result, early steps can appear blank or not executed even though they ran and produced data.

Only the display is affected. Your flow logic runs, records are created, and the execution completes.

Composer isn’t designed for complex or large automations. The limitation depends on the complexity of the processing logic, not the size of the data. For example, a flow with 100 steps isn’t recommended. Complex flows can result in partial debug messages, slow load times, and other performance problems.

If early steps in a large flow appear blank after you test it, verify the results directly, for example, by checking the records created or updated in the target system.

Keep your flows smaller and more manageable. For use cases that require advanced or complex logic, consider Anypoint Code Builder.

W-24287812

## September 12, 2025 ### Composer Platform
Known IssueWorkaroundID

Composer’s functionality may be subject to various limitations related to the external systems and their respective limits used in data retrieval. Composer is primarily intended for processing simpler and more lightweight datasets. It is important to understand that there is no single, rigid limit and that specific thresholds vary depending on each individual use case. For example, the following limits apply to Salesforce Connector.

For use cases requiring greater control, advanced logic, or larger datasets, users should consider Anypoint Code Builder.

W-19176552

## August 19, 2024 ### Salesforce
Known IssueWorkaroundID

In Salesforce Connector, the SALESFORCE:CONNECTIVITY Failed to get next element error is sometimes thrown when processing the next element of the loop.

Rerun the flow to catch the missed events. For more information, refer to the known issue.

W-16418279

## May 7, 2024 ### NetSuite
Known IssueWorkaroundID

When selecting a record type, if there is a large amount of metadata, the metadata resolver cannot parse the data within the three-minute time limit required by Composer and the Netsuite: Retrieving metadata for the step failed error sometimes occurs.

For more information, see the knowledge article.

W-15586159

## October 31, 2023 ### Composer Platform
Known IssueWorkaroundID

When testing an Invocable Flow, if the value in the output fields was generated by a custom expression or if the value is either a List<Object> or a List<Primitive> data type, then the flow’s final output step does not display the test output data. Output fields that refer to data pills or variables display test output as expected.

None

None

## May 31, 2023 ### SAP S/4HANA Cloud
Known IssueWorkaroundID

When adding an action or a trigger, the Service field dropdown menu might appear empty, which prevents completing the connector configuration.

Similarly, during configuration, the Retrieving metadata for the step failed error might occur.

This is an intermittent issue that should resolve after a brief period of time.

W-13527982

## March 22, 2023 ### Google BigQuery
Known IssueWorkaroundID

Input parameter values of String or date data types must be provided between single quotes using the expression editor.

None

W-12696210

## August 3, 2022 ### RPA
Known IssueWorkaroundID

If connecting to a different RPA than one for which that the existing flow was built, the current RPA process is not automatically mapped to the processes in the new org.

Complete the following steps:

  1. Delete the step in the flow.

  2. Re-add the step in the flow.

  3. Refresh the process list.

  4. Select the new process.

None

When getting a JSON from RPA, you can pass a list of objects to a connector supporting lists. For example, you can pass the list of order line items to NetSuite.

None

None

When getting a JSON from RPA, you cannot use primitive values of a list when iterating the list. For example, a list of strings can be iterated, but you cannot do anything with the resulting values.

None

None

## July 13, 2022 ### Composer Platform
Known IssueWorkaroundID

When deleting a connection, Composer ensures that there are no flows using that connection. If there are flows using that connection, they appear in a list in the Delete Connection window. However, in rare cases, flows created or edited before July 12, 2022 might not appear in the list.

## April 29, 2022 ### Workday
Known IssueWorkaroundID

In the Invoice object, all fields containing the data type number for amounts are sent as strings.

Using the Custom Expression Editor, you can use the typecasting function, fromStringToNumber, to change the field type from string to number. For example:

Unit Cost=fromStringToNumber(Sales Price)

--- product: Composer --- # Marketo Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Marketo is marketing automation software that aids marketing practitioners, executives, and sales reps to score, nurture, and understand leads. Marketo empowers users with marketing automation, email marketing, lead management, and revenue attribution. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Token URL The URL of the endpoint that provides the access token for Marketo. Client ID The OAuth Client ID that you use to log in to Marketo. Client Secret The OAuth Client Secret that you use to log into Marketo. REST API Endpoint The base URL of your Marketo instance. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New Lead Returns a list of new lead activities after a given datetime. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create Lead Creates a lead to the target audience. Provide a value for **Push Lead to Market to Request**. Update Lead Updates a lead to the target audience. Provide a value for **Push Lead to Market to Request**. Get/Find Lead Retrieves a single lead record through its Marketo ID. Add Lead to List Adds a Person record to a target static list. Update Lead Program Status Changes the program member status of a lead in a target program. Provide a value for **Change Lead Program Status Request**. Create Custom Object Create a custom object record for the target audience. Provide a value for **Sync Custom Object Request**. Update Custom Object Update a custom object record for the target audience. Provide a value for **Sync Custom Object Request**. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Microsoft Dynamics 365 Business Central Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Microsoft Dynamics 365 Business Central is an ERP tool that provides a consolidated way of managing sales, marketing, purchasing, inventory, manufacturing, and shipping logistics. Microsoft Dynamics 365 Business Central also contains a limited set of CRM tools for managing contacts, interactions, segments, opportunities, and marketing campaigns. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Display Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. You must disable the admin consent workflow because Composer does not support it. Base URI The parameter base URI, for example, `https://api.businesscentral.dynamics.com/v2.0///api/v2.0`. Each instance or tenant gets its own parameter base URI. Username The OAuth username that you use to log into Microsoft Dynamics 365 Business Central. Password The OAuth password that you use to log into Microsoft Dynamics 365 Business Central. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: On New or Updated Sales Order Checks for a new or updated sales order or a new or updated sales order line. Provide a value for **Company**. On New or Updated Item Checks for a new or updated item. Provide a value for **Company**. On New or Updated Customer Checks for a new or updated customer. Provide a value for **Company**. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create Sales Order Create a single sales order and, if provided, a list of sales order lines. Provide a value for the following fields: - **Company** - **Customer Number** Update Sales Order Update a single sales order and, if provided, a list of sales order lines. Provide a value for the following fields: - **Company** - **Entity ID** - **ETag** Get Sales Orders Retrieve a filtered list of sales orders in addition to corresponding sales order lines. Provide a value for **Company**. Create Customer Create a single customer. Provide a value for **Company**. Update Customer Update a single customer. Provide a value for the following fields: - **Company** - **Entity ID** - **ETag** Get Customers Retrieve a filtered list of customers. Provide a value for **Company**. Create Item Create a single Item. Provide a value for **Company**. Update Item Update a single Item. Provide a value for the following fields: - **Company** - **Entity ID** - **ETag** Get Items Retrieve a filtered list of Items. Provide a value for **Company**. Create Item Variant Create a single Item Variant. Provide a value for the following fields: - **Company** - **Code** Update Item Variant Update a single Item Variant. Provide a value for the following fields: - **Company** - **Entity ID** - **ETag** Get Item Variants Retrieve a filtered list of Item Variants. Provide a value for **Company**. ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the Microsoft Dynamics 365 Business Central record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Microsoft Teams Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Microsoft Teams is a SaaS enterprise communication system used to send messages within an organization and to customers outside of the direct organization. To send a Microsoft Teams message using MuleSoft Composer, you must have an active business, enterprise, or education Microsoft 365 license. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. You must disable the admin consent workflow because Composer does not support it. Username The username that you use to log in to Microsoft 365. Password The password that you use to log in to Microsoft 365. ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Send message to channel Sends a message to all users who are members of a specific Microsoft Teams channel. The following fields are required: - Team ID - Channel ID - Message ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Monitoring a Composer Flow > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After activation, you can monitor active Composer flows. 1. From the sidebar, click **Flows**. 2. Click the name of a flow to display the flow detail page. The flow detail page shows each time the flow runs and whether or not that run was successful. The run history is retained for a maximum of 14 days or 1000 records, whichever occurs first. ![Flow run history and other flow details in MuleSoft Composer](/mulesoft/current/en-us/composer/_images/images/success-monitoring-ms.png) ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # MuleSoft Composer Glossary > For the full documentation index, see: https://docs.mulesoft.com/llms.txt activate The process of starting a flow. clone The process of copying a flow, including all actions and triggers, in its entirety. Composer Task A Composer Task is any action executed on a Composer Connector, including but not limited to read, create, update, and delete. connection The credentials that give you access to a system where you want to access data: the username and password, and the URL where you enter them to gain access. Some systems require additional information such as a security token. copy The process of duplicating a portion of a flow. You can copy records, triggers, and actions. data pill A variable that allows you to reference a field name or other data structure from within a flow. data structure Structures that store data in a system. For example, Salesforce stores data in sObjects and fields, and Google Sheets stores information in sheets, rows, and cells. edit The process of modifying an existing flow, action, or trigger. for each A logic option that allows you to specify an action for each trigger criteria that is met. flow An automated process that connects to a system and then performs actions on data from that system: - **action**: Something you do with the data fetched from a connection, such as copying a record or row from one system to another. - **step**: A trigger, or one or more actions. Steps include the logic needed to decide whether to perform the step or skip it. A step optionally includes a connection different from the initial trigger. - **trigger**: The first step of every flow, a trigger is something that starts the automated process defined in a flow. A trigger is either an event such as "a new record is created," or a specified point in time. Time-based triggers are called schedulers. The first step of every flow is a trigger. if/else A logic option that allows you to set conditions and execute actions only when specific criteria are met. This enables you to create flows that cover more than one linear branch, without the need to create separate flows. logic The circumstances or requirements that must be met before an action is taken: if/else statements or for-each statements. Insert logic into steps as needed to ensure actions are taken only on the data that should be acted on, not on all the data returned. monitor The process of reviewing activated flows to ensure that they are running successfully. record A collection of fields and data types in Composer. A flow triggers either on a schedule or as a result of a change on a record. That record is then processed through each step in the flow. repair An action to refresh the access token to reconnect your OAuth connection. RPA API Calls Robotic Process Automation (RPA) API Call occur when a customer invokes an API to perform an operation, including, but not limited to lookup, validate, create, update, or delete data in a system as part of an RPA process. RPA Bot Minutes Robotic Process Automation (RPA) Bot Minutes are the number of minutes running process automations across all bot sessions. A single bot may run multiple parallel sessions, with RPA Bot Minutes counting for each parallel session. Multiple bots may be configured to run the same process, with RPA Bot Minutes counting for each of these separate bot sessions. Test runs or process runs in the test phase are also counted towards RPA Bot Minutes. schedule The process of automating the start of a flow at regular intervals. scheduler The mechanism by which flows are scheduled. system Composer connects to systems such as Salesforce, NetSuite, and Google Sheets to execute automated processes which you build, test, and activate as flows. Connections to a system can be made during any step in a flow. Flows must connect to a system during the first step, the trigger or scheduler, even if that system is the same Salesforce org where Composer is hosted. task A change made by Composer for Salesforce to an object or record in the target system(s) of an integration flow that is an insertion, update, or deletion. test The process used to ensure that triggers and actions function properly when constructing a flow. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # MuleSoft Composer Release Notes > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use MuleSoft Composer to build connected experiences faster. You don’t need to wait for development resources to unlock data, integrate apps, and automate business processes that create real customer value. New versions are automatically available once they are released; you don’t need to perform any tasks to move to the new version. See [Known Issues and Limitations for MuleSoft Composer](https://docs.mulesoft.com/composer/ms_composer_ms_release_notes_ki) for a list of known issues and limitations by date. ## October 22, 2026 ### Fixed Issues
Issue ResolutionID

ServiceNow Connector now returns an INVALID_WSDL error instead of parsing WSDL documents that contain any of the following:

  • A DOCTYPE declaration

  • An XInclude element

  • An absolute import, include, or redefine reference in a WSDL or XML schema

Relative WSDL and schema imports continue to work.

W-24541378

## May 28, 2026 ### Fixed Issues
Issue ResolutionID

To prevent excessive errors from abandoned processes and reduce the risk of service incidents, MuleSoft Composer automatically deactivates flows that experience continuous failures and alerts affected users. Deactivation occurs only when a flow meets both of these conditions:

  • 100 or more consecutive errors

  • 10 or more days of continuous failure

You can reactivate a deactivated flow at any time.

W-22571502

## March 19, 2026 ### Fixed Issues
Issue ResolutionID

Jira Connector now correctly updates the watermark for the triggers, and captures all subsequent new and updated issues.

W-20186115

In Jira Connector, all triggers now correctly update the watermark when multiple records share the same minute-level timestamp. The connector now uses cursor-based pagination to retrieve all records for a specific watermark before updating the watermark value. This prevents duplicate record retrieval and resolves issues where flows enter an indefinite waiting state.

W-21090825

## November 17, 2025 ### Fixed Issues
Issue ResolutionID

In Xero Connector, the On New or Updated Invoice trigger now accepts the following values in the Invoice Type field:

  • ACCPAYCREDIT (Accounts Payable Credit Note)

  • ACCRECCREDIT (Accounts Receivable Credit Note)

  • APOVERPAYMENT (Accounts Payable Overpayment)

  • APPREPAYMENT (Accounts Payable Prepayment)

  • AROVERPAYMENT (Accounts Receivable Overpayment)

  • ARPREPAYMENT (Accounts Receivable Prepayment)

W-19889137

## October 29, 2025 ### Fixed Issues
Issue ResolutionID

In QuickBooks Connector, the Create Estimate action no longer fails when the Expiration Date and Due Date field values are provided in the flow.

W-18116231

## October 7, 2025 ### Fixed Issues
Issue ResolutionID

Jira Connector now correctly processes search results for triggers by removing the total field from parsing.

W-19586865

## September 18, 2025 ### Fixed Issues
Issue ResolutionID

In Jira Connector, the /rest/api/3/search/jql endpoint is used instead of the /rest/api/3/search endpoint.

W-19470768

## July 9, 2024 ### Fixed Issues
Issue ResolutionID

In Workday Connector, testing a flow that has an error handler containing a Workday connection no longer gets stuck in the processing status and incorrectly fails with the Test failed because of external errors. Please try again. error.

W-15239656

## May 17, 2024 ### Fixed Issues
Issue ResolutionID

NetSuite Connector no longer fails to retrieve custom values in an Inventory record.

W-15138793

In NetSuite Connector, the Get Records action now returns the correct Internal ID for values in fields containing multiple picklists.

W-15194262

## March 21, 2024 ### What’s New - You can now view descriptions of connector actions and triggers directly under their respective names. ## March 15, 2024 ### Fixed Issues
Issue ResolutionID

After an access token expires, Salesforce Marketing Cloud Connector now properly refreshes the access token.

W-14979479

## March 11, 2024 ### Fixed Issues
Issue ResolutionID

In Jira Connector, you can now create new connections in Composer as intended.

W-15070963

## February 28, 2024 ### Fixed Issues
Issue ResolutionID

Microsoft Dynamics 365 Business Central Connector no longer incorrectly fails with an Invalid Connection error when creating a connection.

W-14824218

## February 26, 2024 ### What’s New - A beta feature is now available to enhance automation and integration which allows you to publish your activated Composer Flows to a trusted Salesforce organization. ## January 9, 2024 ### What’s New - For triggers in the following connectors, the **Polling Frequency** field is now required: - Microsoft Dynamics 365 Business Central - Workday - Xero This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. ## December 14, 2023 ### What’s New - For triggers in the following connectors, the **Polling Frequency** field is now required: - MuleSoft RPA - Sage Intacct - SAP S/4HANA Cloud - ServiceNow - Slack - Snowflake - Zendesk This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. - API Sharing is now available for single-tenant, Anypoint Platform organizations in Composer. API Sharing is limited to the Exchange API Asset in the same Anypoint organization. This enables Composer to expand the connectivity to more systems, to have more control over both API management and governance, and to consume complex APIs built in Anypoint Platform. ## December 6, 2023 ### What’s New - For triggers in the following connectors, the **Polling Frequency** field is now required: - Asana - Box - Gmail - Google Big Query - Google Sheets - Hubspot - Jira - Marketo - Netsuite This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. ## December 1, 2023 ### What’s New - For triggers in QuickBooks Online Connector and Stripe Connector, the **Polling Frequency** field is now required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. ## November 20, 2023 ### What’s New - A new page, **Connections**, is available in the navigation pane. Using this page, you can easily view connections, see which flows currently use each connection, delete connections, and edit the names of connections. ## November 15, 2023 ### What’s New - Salesforce Connector now supports Salesforce API v59.0. ## November 14, 2023 ### What’s New - For triggers in Salesforce Connector, the **Polling Frequency** field is now required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. ## November 13, 2023 ### What’s New - You can now search for templates (by template name, connector name, or template description) and filter templates (by use case category or connector). ## October 31, 2023 ### What’s New - When selecting outputs for an Invocable Flow, the `List` and `List` data types are now available. Additionally, you can append or prepend items to your List variable using dynamic or static list mappings. ## October 19, 2023 ### What’s New - When defining a variable, the `List` and `List` data types are now available. Additionally, you can append or prepend items to your `List` variable using dynamic or static list mappings. - You can now define a primitive list by mapping a `List` data pill to a primitive list value within your flow. - You now have the option to change connections for all steps (at the flow level) instead of individually changing connections for each step. ## October 13, 2023 ### Fixed Issues
Issue ResolutionID

Implemented backend changes in HubSpot Connector to support Mule Runtime 4.5.0.

W-14224733

## October 5, 2023 ### Fixed Issues
Issue ResolutionID

SAP S/4HANA Cloud Connector no longer throws a null error when retrieving metadata for some entity types.

W-13568493, W-14194111

## October 4, 2023 ### What’s New - Using typeahead, you can now create a list of primitive data types statically by using \[ \] in the **Custom Expression Editor**, for example, \[name1@gmail.com, name2@gmail.com\]. - You can now use a statically-built list as an input parameter in the `joinBy` function. ## October 3, 2023 ### Fixed Issues
Issue ResolutionID

If the access token fails to refresh in a flow, you are now informed about the issue. You can now see the error in Run History and in an email notification (if opted-in). You must restart the flow to benefit from this fixed issue.

W-13628406

## September 21, 2023 ### What’s New - Picklist Mapping is now enabled for all string fields. Using Picklist Mapping, you can map data from one application with the corresponding data needed by another application. This enables you to connect two applications that have different values for a similar field and to align the values in those fields across applications. You can determine how the possible values of an output field (data pill) map to the possible values of an input field. You can reuse the mapping across flows. - You can now specify output fields in your invocable Composer flow so that these output fields are returned in the response payload to the system that triggers the invocable Composer flow. ## August 25, 2023 ### Fixed Issues
Issue ResolutionID

In Jira Connector, file transfer from Jira to Salesforce now works as intended.

W-13632302

## August 17, 2023 ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, the Unable to retrieve custom Fields from Netsuite for customizationId customSegment metadata error is no longer thrown when using a NetSuite org that does not have custom segments enabled.

W-13896697

## August 16, 2023 ### Fixed Issues
Issue ResolutionID

Salesforce Connector now displays errors when object or field permissions are removed.

W-13625323

## August 7, 2023 ### What’s New - In the **Custom Expression Editor**, you can now update any `List` (for example, `List` or `List`) and manually build a list using commas and the typeahead feature. You cannot build the list in-line; however, you can select an existing `List` data pill of that data type to build your list. - The following `List` functions are now available for the **Custom Expression Editor**: - `joinBy`: Merges a list into a single string value and uses the provided string as a separator between each item in the list. - `splitBy`: Splits a string into a list of strings based on a separating string that matches part of the input string. ## July 31, 2023 ### What’s New - You can now invoke a Composer flow from external systems, such as Flow Builder, Flow Orchestration, another Composer flow, an Apex callout, or a cURL command. This feature enables deeper interoperability and integrated capabilities across Salesforce. For more information, refer to [Invoke a Composer Flow](https://docs.mulesoft.com/composer/ms_composer_invocable_flows). ## July 27, 2023 ### What’s New - To enhance connectivity, you can now use OAuth 2.0 Client Credentials to create a connection in Composer to MuleSoft RPA Connector. ## July 14, 2023 ### What’s New - In Stripe Connector, the **On New Refund** trigger now outputs the following fields: - **Balance Transaction** - **Payment Intent** - **Charge ID** ## July 12, 2023 ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, design metadata errors are now shown to the user.

W-13587716

## July 10, 2023 ### What’s New - To improve discoverability, you can now refresh the value providers and other fields in a step within your flow by clicking the refresh button on the step header. This button appears when you hover above the refresh button for the step. ## July 3, 2023 ### What’s New - The following enhancements appear on the **Flow Details** page: - The **Last Triggered** field now appears in the heading of the **Flow Details** page. This field displays the last time that a flow was triggered. Refreshing the **Flow Details** page also refreshes the value in the **Last Triggered** field. - The **Reference ID** field now appears in the **Run History** section. For Event triggers, the value in this field is the corresponding **Record ID**. For events triggered by the Scheduler, a unique **Execution ID** value is created for the run instance. ### Fixed Issues
Issue ResolutionID

In RPA Connector, the RPA Process Execution Completed trigger no longer fails every few seconds with an UNKNOWN ERROR message.

W-13697777

## June 28, 2023 ### Fixed Issues
Issue ResolutionID

In RPA Connector, if a connection exception occurs, the RPA Process Execution Completed trigger now reconnects.

W-13280827

## June 27, 2023 ### What’s New - You can now define a variable as temporary storage in your flow and use it as a data pill. Defining a variable enables you to complete certain use cases like aggregating calculations and storing values. You define variables locally within a flow and use them anywhere within that flow. ## June 26, 2023 ### Fixed Issues
Issue ResolutionID

In Jira Connector, custom fields are now visible in projects with no issues created.

W-13498207

## June 21, 2023 ### Fixed Issues
Issue ResolutionID

Salesforce Connector now properly displays required DateTime fields.

W-13606652

## June 20, 2023 ### What’s New - The **Custom Expression Editor** now supports typeahead. You can now type math operators in the **Custom Expression Editor** and select them using the Enter key, Tab key, or mouse with typeahead. You no longer need to toggle the operator tab and manually select the math operator from the list. ## June 15, 2023 ### What’s New - The Error Handler is now generally available. You can use this feature to watch for errors in connection or logic in specific steps of your flow and then designate logic to handle the errors that may occur. ## June 13, 2023 ### Fixed Issues
Issue ResolutionID

In Salesforce Connector, the Get records action no longer throws an error when the value of a condition contains an apostrophe.

W-13192901

## June 8, 2023 ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, custom fields now appear as intended.

W-13552619

## June 6, 2023 ### Fixed Issues
Issue ResolutionID

The fromStringToDateTime function now preserves the timezone as intended. Active flows receive this change when they are deactivated. Inactive flows show an error and you must manually change the format parameter of the formula to uuuu-MM-dd’T’HH:mm:ssz.

W-13488568

## June 3, 2023 ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, custom fields now appear as intended for the RETURN_AUTHORIZATION record type.

W-13484699

## May 31, 2023 ### What’s New - You can now connect to a new system: SAP S/4HANA Cloud. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. ### Fixed Issues
Issue ResolutionID

QuickBooks Connector now includes an enhanced implementation for input parameters, such as better mapping when input parameters are not specified or are null.

W-13280661

In NetSuite Connector, custom fields now appear as intended.

W-13222742, W-13304252, W-13481333

## May 25, 2023 ### What’s New - When adding a trigger or an action, you can now use the new search bar in the **System Action** and **System Event** windows to enter the specific name of a connector or shared API to use in your flow. ## May 24, 2023 ### Fixed Issues
Issue ResolutionID

In Sage Intacct Connector, the New or Updated Customer trigger now uses the correct watermark time pattern, which prevents errors in processing the request.

W-13119901

## May 17, 2023 ### Fixed Issues
Issue ResolutionID

In Jira Connector, the exception message is now more clear when there is an invalid organization site URL.

W-13143023

## May 12, 2023 ### Fixed Issues
Issue ResolutionID

In Salesforce Connector, custom metadata objects are no longer shown as metadata keys for the Create new record, Update record, and Create or update record actions as intended.

W-13182376

## May 9, 2023 ### Fixed Issues
Issue ResolutionID

Sage Connector now automatically reconnects when there is a session timeout.

W-13003862

## May 8, 2023 ### What’s New - A new option, **Only the first record**, is now enabled for the **Get records** action in Salesforce and NetSuite Connectors. Using this option, you can return a single record by using a unique identifier in your search criteria. When selected, the **Get records** action searches for all records that meet the selected criteria and returns the first record in the list that meets the criteria. ## May 5, 2023 ### Fixed Issues
Issue ResolutionID

To resolve metadata load errors caused by timeouts, requests to retrieve metadata from the API in NetSuite Connector are now optimized.

W-12411817

## May 3, 2023 ### What’s New - An optional new field, **Organization Site URL**, appears when creating a connection for Jira Connector. The **Organization Site URL** field enables you to enter the URL of the Jira organization containing the sandbox or production environment to which you want to connect. ## April 25, 2023 ### Fixed Issues
Issue ResolutionID

Snowflake Connector now validates account names by checking for invalid special characters.

W-12598991

In NetSuite Connector, the Get Records action now correctly supports the OTHER_CHARGE_SALE_ITEM record type.

W-13001785

## April 20, 2023 ### Fixed Issues
Issue ResolutionID

Error messages in HTTP Connector now display more precise error types.

W-12483461

When you complete the Operation Values field in REST Consumer Connector, an error indicating that a value is required no longer occurs.

W-12648223

Rest Consumer Connector now properly recognizes the values provided in the Client Secret and Client ID fields while using API Sharing.

W-12601570

## April 17, 2023 ### What’s New - The Error Handler (Beta) is now available. You can use this feature to watch for errors in connection or logic in specific steps of your flow and then designate logic to handle the errors that may occur. ## April 12, 2023 ### What’s New - The **Custom Expression Editor** now supports the following `string` functions: - `emptyString` - `substring` ### Fixed Issues
Issue ResolutionID

In QuickBooks Online Connector, an exception with an unknown description no longer occurs when custom fields are not specified.

W-12724854

## April 11, 2023 ### Fixed Issues
Issue ResolutionID

In Xero Connector, fixed the issue in which a flow using the Create or Update Invoice object was not triggered when testing.

W-12670939

## April 4, 2023 ### Fixed Issues
Issue ResolutionID

In Jira Connector, the Get issues action now works as intended when the Type field contains a whitespace.

W-12760964

## April 3, 2023 ### What’s New - The following actions are now available for Slack Connector: - **Add users to channel** - **Create channel** - **Send direct message to multiple users** ## March 28, 2023 ### What’s New - If a connector update or bug fix may cause interruptions to your flows, you now receive an email describing these updates and outlining which flows you should stop and reactivate to avoid flow failures. ## March 24, 2023 ### What’s New - In NetSuite Connector, the log on time metadata is now registered to each record. - In NetSuite Connector, the metadata for the **File** object is now available for the **Create Actions** record. ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, the Get Records action no longer returns the incorrect record for the LOT_NUMBERED_ASSEMBLY_ITEM record type.

W-12473442

In NetSuite Connector, the USER_ERROR: Invalid log in attempt error no longer occurs.

W-12619973

In NetSuite Connector, the Name field no longer appears in write operations.

W-12428757

In NetSuite Connector, the Type dropdown in the Get Records action no longer causes a NETSUITE_SOAP_FAULT error.

W-12572300

The NetSuite Connector no longer fails to parse the com.sun.xml.internal.stream.events.EndElementEvent error response.

W-12573323

## March 23, 2023 ### What’s New - Previously, boolean fields that supported expressions rendered as either text fields or as picklists. All boolean fields that support expressions now render as a hybrid field that supports both text fields and picklists. Additionally, if you manually enter `true` or `false` into a text field, the field automatically selects the corresponding dropdown value regardless of letter case. - When hovering over data type icons for fields, informational tooltips now appear. ## March 22, 2023 ### What’s New - You can now connect to a new system: Google BigQuery. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. ## March 13, 2023 ### What’s New - You can now import a flow as a JSON file by clicking the wrench icon and selecting **Import**. The import flows feature is in open beta. ## March 9, 2023 ### What’s New - In Salesforce Connector, the **Run History** page now displays detailed error log information to enable effective troubleshooting. Error logs now include the date and time on which the error occurred, an explanation of the error, and the location within the flow where the error occurred. ## March 2, 2023 ### Fixed Issues
Issue ResolutionID

Fixed the issue in Jira Connector that occurred when there was a discrepancy between data providers containing the field project in their parameters.

W-12270412

## February 27, 2023 ### What’s New - If a Composer connector supports a default value for a field, that value now appears and is selected in the Composer UI; however, the user can choose to override the default value. ## February 21, 2023 ### What’s New - The **Composer Administrator** permission set is now available. After the installation of Composer, the system administrator can assign the following permissions to users: - The **Composer Administrator** has access to the **Settings** page and can manage email preferences and API Sharing. - The **Composer User** has general access to Composer functionality such as building and managing flows. - The **Settings** page is now available for those with the **Composer Administrator** permission set. On this page, you can view and edit email notification settings. ### Fixed Issues
Issue ResolutionID

Fixed the possible null pointer exception that sometimes occurred when custom fields were not specified.

W-12572592

## February 17, 2023 ### What’s New - In Gmail Connector, the **On New Email** trigger and the **Send email** action now support attachments. - The **Get Attachments** action is now available for Gmail Connector. ### Fixed Issues
Issue ResolutionID

In Zendesk Connector, the external ID value is now represented as a string instead of a number as per the Zendesk API.

W-12360287

## February 15, 2023 ### Fixed Issues
Issue ResolutionID

In Tableau Connector, the native libraries were upgraded to address reported security vulnerabilities.

W-11453219

## February 13, 2023 ### Fixed Issues
Issue ResolutionID

In HTTP Connector, the correct payload is now sent when a top-level array is defined in the API specification endpoint.

W-12373559

## February 8, 2023 ### Fixed Issues
Issue ResolutionID

Now, when you open a flow, all steps aside from If/Else Blocks and For Each Loops are collapsed to provide a navigable outline of the flow.

W-12515426

## February 7, 2023 ### Fixed Issues
Issue ResolutionID

In Rest Consumer Connector, the correct payload is now sent when a top-level array is defined in the API specification endpoint.

W-12373559

## February 6, 2023 ### What’s New - You can now connect to a new system: Sage Intacct. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. ## February 3, 2023 ### What’s New - The following enhancements have been made for Microsoft Dynamics 365 Business Central Connector: - The **Create Sales Order** action now enables users to create a list of sales order lines within the sales order object. - The **Update Sales Order** action now enables users to update a list of sales order lines in addition to the sales order object. - The **Get Sales Orders** action now enables users to retrieve sales order lines corresponding to a filtered list of sales orders. - The **On New or Updated Sales Order** trigger now checks for new or updated sales order lines in addition to new or updated sales orders. - If you use a **Display Name** for the company, the **Display Name** is now populated in the **Company ID** dropdown instead of the **Company Name**. ## February 1, 2023 ### Fixed Issues
Issue ResolutionID

In Jira Connector, the metadata output for the labels property now returns an array of strings instead of an array of empty objects.

W-11899482

In Jira Connector, the Retrieve attachment action now shows the detailed error message returned by the Jira endpoint.

W-12282452

## January 30, 2023 ### What’s New - Quickbooks Online Connector now supports custom fields for actions and triggers. - The following actions are now available for Quickbooks Online Connector: - **Create Estimate** - **Get Estimate** - **Update Estimate** - The following triggers are now available for Quickbooks Online Connector: - **On New Estimate** - **On New or Updated Estimate** ## January 26, 2023 ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, metadata load logging is now enhanced.

W-12412287, W-12244102

In NetSuite Connector, records now show custom segments as intended.

W-12244102

## January 20, 2023 ### What’s New - The following record types are now available for NetSuite Connector: - BILLING\_SCHEDULE - CLASSIFICATION - GIFT\_CERTIFICATE\_ITEM - INVENTORY\_ADJUSTMENT - ITEM\_RECEIPT - LOT\_NUMBERED\_ASSEMBLY\_ITEM - OTHER\_CHARGE\_PURCHASE\_ITEM - OTHER\_CHARGE\_RESALE\_ITEM - OTHER\_CHARGE\_SALE\_ITEM - SERIALIZED\_ASSEMBLY\_ITEM - SERIALIZED\_INVENTORY\_ITEM - TRANSFER\_ORDER ## January 16, 2023 ### What’s New - In Snowflake Connector, the **Select Rows** action now includes enhanced sample data resolution. ## January 13, 2023 ### What’s New - The following record types are now available for NetSuite Connector: - ITEM\_FULFILLMENT - ITEM\_GROUP - KIT\_ITEM ### Fixed Issues
IssueID

In NetSuite Connector, NullFieldsList is no longer included in the metadata.

W-12029245

In NetSuite Connector, External ID is now shown in custom fields when creating or updating a record.

W-11951099

In NetSuite Connector, errors are no longer overridden when warnings are present.

W-12165594

## January 12, 2023 ### What’s New - HTTP Connector now supports the following pagination type for fields: **Offset**. ## January 11, 2023 ### What’s New - ServiceNow Connector now supports the Tokyo release. ## December 23, 2022 ### Fixed Issues
Issue ResolutionID

In Salesforce Connector, the Upload file and Download file actions no longer incorrectly throw a NullPointerException when using an OAuth 2.0 connection.

W-12236769

## December 15, 2022 ### What’s New - The **On New Message** trigger is once again available for Slack Connector. The following enhancements have been made to the trigger: - The **Created** field now supports a date picker. - The **Limit** field now supports only numeric values. - The **Limit** field now defaults to `100`. - Messages returned by the trigger now appear in ascending order by time. - In Slack Connector, the **Conversation ID** field has been renamed to **Conversation Name**. Additionally, this field is now supported by a dropdown. ## December 14, 2022 ### What’s New - If you attempt to use a data pill in a scope where the value could be null or empty, a message alerting the user now appears. ## December 13, 2022 ### What’s New - In Salesforce Connector, Composer logging now includes enhanced error codes and messages when the API returns `ApiFault` errors. ### Fixed Issues
Issue ResolutionID

In ServiceNow Connector, the New/Updated Record trigger now picks up messages for all appropriate timestamps.

W-12176039

In ServiceNow Connector, sudden disconnections in high workload scenarios no longer occur.

W-12035222

In ServiceNow Connector, the componentorg.apache.commons library is upgraded to version 1.10.0 to address reported security vulnerabilities.

W-11913979

In ServiceNow Connector, the org.springframework library is upgraded to version 5.3.20 to address reported security vulnerabilities.

W-12150392

In Salesforce Connector, the triggers and the Get records action now support the isTrue and isFalse operators for boolean parameters.

W-11752116

In Salesforce Connector, the Delete record action no longer incorrectly throws a Retrieving metadata for the step failed. Try saving and refreshing the page. error.

W-12211471

In Salesforce Connector, the triggers no longer have a potential data loss when the watermark is not used properly.

W-12128874

In Jira Connector, the com.fasterxml.jackson.core library is upgraded to version 2.14.1 to address reported security vulnerabilities.

W-11933499

In Jira Connector, the org.apache.commons-text library is upgraded to version 1.10.0 to address reported security vulnerabilities.

W-12004679

## December 12, 2022 ### Fixed Issues
Issue ResolutionID

In Zendesk Connector, the com.fasterxml.jackson.core library is upgraded to version 2.13.4.1 to address reported security vulnerabilities.

W-11933496

In Zendesk Connector, the connection no longer breaks when Zendesk triggers are idle for long durations when deployed on CloudHub.

W-12040415

## December 7, 2022 ### Fixed Issues
Issue ResolutionID

Previously, if a deactivated flow was reactivated, that flow would erroneously pick up events that occurred while the flow was deactivated. Now, when a flow is deactivated, the object store data for that flow is erased so that the flow will start fresh upon reactivation.

W-12120985

## November 29, 2022 ### What’s New - In HTTP Connector, the OAuth 2.0 Authorization Code Grant connection provider now supports the ability to set custom request headers for **Token Exchange**, **Token Refresh**, and **Token Revoke**. Some systems, such as Fortnox and QuickBooks, require sending credentials as request headers during the OAuth dance. With custom request headers, you can now connect to these systems using HTTP Connector. ## November 21, 2022 ### What’s New - All users now have permission to view and manage all flows within your organizations. ## November 17, 2022 ### What’s New - When an error occurs, the **Run History** page now provides the step name, step number, connector type, and the error message to enable you to troubleshoot issues within your flow. ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, mapping now works properly when the same custom list field is between multiple items in one record.

W-12041041

## November 8, 2022 ### What’s New - You can now connect to two new systems: Marketo and Snowflake. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. ## November 3, 2022 ### What’s New - The following record types are now available for NetSuite Connector: - DEPARTMENT - LOCATION - PRICE\_LEVEL - SUBSIDIARY - In HTTP Connector, connectivity tests for the OAuth2 Authorization Code Connection Provider are now enabled. ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, the Jackson Databind library is upgraded to version 2.13.4.2 to address reported security vulnerabilities.

W-11963381

When connected to Jira, HTTP Connector now retrieves error messages when errors occur. Previously errors were only recorded in the Jira log.

W-11816468

When connected to Shopify, HTTP Connector flow tests no longer run indefinitely and return errors.

W-11821763, W-11819981

## November 1, 2022 ### Fixed Issues
Issue ResolutionID

In Slack Connector, the On New Message trigger has been disabled and is no longer available.

W-11972430

## October 31, 2022 ### What’s New - You can now create new flows from templates. This release includes support for the following templates: - Create Or Update Jira Issue for Associated Change Request in Salesforce - Create Or Update Jira Issue for Associated Work Plan in Salesforce - Create Or Update Jira Issue for Associated Work Step in Salesforce - Create Change Request in Salesforce for Associated Jira Issue - Update Change Request in Salesforce for Associated Jira Issue - Create Work Plan in Salesforce for Associated Jira Issue - Update Work Plan in Salesforce for Associated Jira Issue - Create Work Step in Salesforce for Associated Jira Issue - Update Work Step in Salesforce for Associated Jira Issue - Create or Update Incident and Asset for Associated ServiceNow Incident - Create or Update ServiceNow Incident for Associated Incident in Salesforce - Create Configuration Item for Associated Incident Asset in Salesforce - Create or Update Netsuite Credit Memo for Associated Posted Credit Memo in Salesforce - Create or Update Netsuite Customer for Associated Account in Salesforce - Create or Update Netsuite Customer Payment for Associated Processed Payment in Salesforce - Create or Update NetSuite Inventory Item for Associated Active Product in Salesforce - Create or Update Netsuite Invoice for Associated Posted Invoice in Salesforce - Create or Update Netsuite Sales Order for Associated Activated Order in Salesforce Templates are patterns that you can leverage to build a flow. All of the steps and field mappings are predefined, so you can select the template and enter the missing information for the various connectors used (such as connection secrets) to create a flow you can later customize. Since templates are pre-built flows, templates not only reduce the barrier to entry and accelerate the time to activate the flow, but also include the best practices for flows. - MuleSoft Anypoint Platform customers can now share externally available APIs managed in Anypoint Platform with business users for consumption in a MuleSoft Composer flow. This enhancement creates integrations that span beyond out-of-the-box connectors. - You can now transfer binary files as field inputs using data pills from within your Composer flow. For example, when keeping files in sync between Salesforce instances, you can download binary file content from one instance and later upload that same file content to another instance using the new **Download file** and **Upload file** actions. - To facilitate MuleSoft Automation, the subscription pricing method has been reevaluated for MuleSoft Composer. To enable this enhancement, a new menu, **Usage Summary**, has been added to the navigation pane. On the **Usage Summary** page, you can view your monthly tasks and credit usage per flow for your organization. - The following new actions are now available for Jira Connector: - **Create project** - **Get project** - **Update project** - **List attachments** - **Upload attachments** - **Get attachments** - The following triggers have been renamed in Jira Connector: - **Issue updated with Custom Fields** has been renamed to **Issue with Custom Fields was updated or created** - **Issue updated with Standard Fields only** was renamed to **Issue with Standard Fields only was updated or created** ### Fixed Issues
Issue ResolutionID

In Jira Connector, the Result filter has been removed and now tests no longer fail when fields are selected.

W-11510054

In Jira Connector, the number of Jira projects that appeared in a dropdown was limited. Now, all Jira projects are retrieved in the dropdown.

W-11912169

## October 27, 2022 ### What’s New - You can now add custom logic, such as `and`, `or`, or `not`, in conditional statements when building an action and in If/Else statements. - In RPA Connector, you can now test an RPA process using sample data without invoking the RPA process. - In RPA Connector, you can now connect directly to your RPA Organization to see your processes by clicking the **Create an invokable run config from MuleSoft RPA** button when you are connected to your RPA organization and no processes appear in the dropdown for the **RPA Process** field. - In RPA Connector, when you select the **RPA Process** dropdown, the values that appear are now listed in the following format: ** / **. For example, **Claims / Check for updates**. ## October 26, 2022 ### What’s New - The following new triggers are now available for HubSpot Connector: - **On New Record** - **On New or Updated Record** - In HubSpot Connector, tooltips are now updated and improved for both triggers and actions. - In Stripe Connector, the **Find Customer** action now supports dynamic metadata. ### Fixed Issues
Issue ResolutionID

In Stripe Connector, fixed security vulnerability found in componentcom.fasterxml.jackson.core : jackson-databind : 2.13.2.2.

W-11853409

## October 20, 2022 ### What’s New - In Workday Connector, in the **On New or Updated Records** trigger and the **Get Worker Details ID** action, the following fields, which enable array values of complex objects from Workday APIs, are now available for the **WORKER** object: - **Email Addresses** - **Job Addresses** - **Persona Addresses** - **Supervisor Organization Chain** ## October 17, 2022 ### Fixed Issues
Issue ResolutionID

In Jira Connector, in the Get Issue in Jira action, removed the unnecessary Select Fields button.

W-11649482

## October 13, 2022 ### What’s New - You can now export a flow as a JSON file to share your flow with Support for troubleshooting purposes by clicking the wrench icon and selecting **Export**. ## October 12, 2022 ### What’s New - When looping over a selected list of strings in a for each loop, you can now use a single string value across multiple cards in the loop. - The following record types are now available for NetSuite Connector: - PARTNER - LEAD - PROSPECT ## October 10, 2022 ### What’s New - In RPA Connector, the JSON Sanitizer has been implemented to prevent JSON injection. ## October 7, 2022 ### Fixed Issues
Issue ResolutionID

Fixed the issue in which the Run History page in Composer unnecessarily displayed an error and sent an email notification for an expired access token. Now the error does not appear and no email is sent. To implement this fix, deactivate and then reactivate your flow.

W-11649482

## October 6, 2022 ### Fixed Issues
Issue ResolutionID

Fixed the issue in Google Sheets Connector in which an InterruptedException occurred during an MUnit test.

W-10887516

Fixed the issue in Google Sheets Connector in which the Create row action did not work properly when the first column without a header contained values.

W-10933097

In Google Sheets Connector, the com.fasterxml.jackson.core library is upgraded to version 2.13.4.

W-11719209

## September 29, 2022 ### What’s New - The OAuth 2.0 Authorization Code grant for authentication in HTTP Connector now supports customizing the **Authorization Header Name**, **Authorization Header Value Prefix**, and **Authorization Header Custom Value Prefix** fields for the Authorization Header. ## September 9, 2022 ### What’s New - HTTP Connector now supports the OAuth 2.0 Authorization Code grant for authentication. ### Fixed Issues
Issue ResolutionID

Fixed the issue in NetSuite Connector in which the CURRENCY and CURRENCY_RATE objects did not work for the Get Records action.

W-11722063

## September 6, 2022 ### What’s New - You can now transfer binary files as field inputs using data pills from within your Composer flow. For example, when keeping files in sync between Box instances, you can download binary file content from one instance and later upload that same file content to another instance. - The `jackson.databind` library is upgraded to version 2.13.4 to address reported security vulnerabilities for HTTP Connector. ### Fixed Issues
Issue ResolutionID

Fixed the issue in HTTP Connector in which the test connectivity was not triggering a refresh with an OCS connection.

W-11469764

Fixed the issue in HTTP Connector in which OAuth 2.0 refresh tokens from Shopify were not valid.

W-11437322

Fixed the issue in HTTP Connector in which fields containing an escape sequence (for example, \r for a carriage return) were not properly parsed.

W-11072611

Fixed the issue in Quickbooks Connector where Sample Data output returned more than one record, even in the case of arrays that are nested fields.

W-11388800

## August 31, 2022 ### What’s New - Picklist Mapping is now enabled for fields in an action that supports Pick from List. Using Picklist Mapping, you can map data from one application with the corresponding data needed by another application. This allows you to connect two applications that have different values for a similar field and to align the values in those fields across applications. You can determine how the possible values of an output field (data pill) map to the possible values of an input field. You can reuse the mapping across flows. ## August 29, 2022 ### What’s New - You can now connect a new system: Microsoft Dynamics 365 Business Central. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. - Data Pill Search is now available. You can use this feature to find where a particular data pill is used in your flow. ## August 19, 2022 ### Fixed Issues
Issue ResolutionID

In ServiceNow Connector, the Read Timeout field is updated from 5 seconds to 15 seconds to avoid timeouts on large tables.

W-11601586

## August 8, 2022 ### What’s New - The following record types are now available for NetSuite Connector: - SERVICE\_RESALE\_ITEM - TIME\_SHEET - TIME\_BILL ### Fixed Issues
Issue ResolutionID

In NetSuite Connector, connections using lowercase values in the Account ID field no longer fail.

W-11469671

## August 3, 2022 ### What’s New - You can now connect a new system: MuleSoft Robotic Process Automation (RPA). See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. ## August 2, 2022 ### What’s New - In Salesforce Connector, you can now specify conditions for triggers. ### Fixed Issues
Issue ResolutionID

Labels are now properly capitalized in ServiceNow Connector.

W-10575461

## July 29, 2022 ### What’s New - The **On New Message** trigger is now available for Slack Connector. - You can now connect a new system: Salesforce Marketing Cloud Connector. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. ## July 28, 2022 ### What’s New - You can now connect a new system: HubSpot. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. - Required fields in Composer are now denoted with an asterisk (\*). Previously, when adding fields in Composer, only optional fields appeared in the modals. Now: - When a parent field is selected or deselected and it has required child fields, those child fields are also selected or deselected by default. - When a field is selected or deselected and it has required parent fields, those parent fields are also selected or deselected by default. - When an optional field is selected, the corresponding required fields (including one or more parent fields) are also selected. Required fields can be removed only by deselecting them within the modal. - HTTP Connector now supports Paginated Requests. When retrieving collections of objects from remote systems, use Paginated Requests to ensure that all data pages are returned. - Flows based on a scheduler now have access to the scheduler’s current and previous timestamps. - NetSuite Connector now supports exponential retries, which prevent concurrency limit errors. ## July 27, 2022 ### What’s New - The following objects are now available for NetSuite Connector: - Currency - Currency Rate - Lot Numbered Inventory Item Note that the objects will appear in all caps and with underscores. ## July 13, 2022 ### What’s New - When deleting a connection, a list of active and inactive flows using the selected connection now appears. Using this list, if the connection is: - Not used in any flows, you can delete the connection. - Used in inactive flows, a list containing the name and count of inactive flows using this connection appears. Deleting this connection will affect the listed flows. If you reopen the inactive flow, you must select a new connection. - Used in active and inactive flows, a list containing the name, count, and status of active and inactive flows using this connection appears. If you choose to delete the connection, secondary confirmation appears. Prior to deleting the connection, Composer will first attempt to stop the flows. ## June 28, 2022 ### What’s New - In NetSuite Connector and Salesforce Connector, empty field values are ignored by default. To clear empty values, you can now select the `Clear on Null Values` option. ## June 21, 2022 ### What’s New - Organizations that use both MuleSoft Composer and Anypoint Platform can now connect the two organizations through Access Management. ## June 6, 2022 ### Fixed Issues
Issue ResolutionID

In Workday Connector, the connection validation now succeeds even if the user does not have access to the Performance_Management service.

W-11193505

Fixed reported security vulnerabilities in Workday Connector by upgrading the Spring Framework library from org.springframework:spring-context:5.3.18 to org.springframework:spring-context:5.3.20.

W-11195299

## May 31, 2022 ### What’s New - In NetSuite Connector, empty field values are ignored by default. To clear empty values, you can now select the `Clear on Null Values` option. ## May 20, 2022 ### Fixed Issues
Issue ResolutionID

Fixed the issue in Jira Connector in which a blank value in the Description field incorrectly returned an invalid input error.

W-11107531

## May 17, 2022 ### Fixed Issues
Issue ResolutionID

Fixed the issue in Slack Connector in which a null pointer exception occurred after cleaning up markup in a plain text string.

W-11031313

## May 11, 2022 ### Fixed Issues
Issue ResolutionID

ServiceNow Connector now loads metadata for all WebService accessible tables automatically.

W-10919969

In ServiceNow Connector, patched security vulnerability in dependency org.springframework : spring-beans : 5.3.17.

W-10981860

In ServiceNow Connector, patched security vulnerability in dependency org.springframework : spring-context : 5.2.7.RELEASE.

W-11001899

## May 5, 2022 ### What’s New - The following objects are now available for NetSuite Connector: - Service Item for Sale - Service Item for Purchase - Return Authorization > [!NOTE] The objects will appear in all caps and with underscores. ### Fixed Issues
Issue ResolutionID

Fixed the null pointer exception issue that occurred in NetSuite Connector using a trigger that had been previously modified to select a custom object.

W-10995359

## April 29, 2022 ### What’s New - The following actions were added to Workday Connector to enable Workday Financial Management: - **Create Object** - **Update Object** - **Get Object** ### Fixed Issues
Issue ResolutionID

Fixed the issue in Workday Connector in which you could not filter fields containing values with the file data type.

W-10574439 COCN-667

In Workday Connector, when editing a Job Requisition action, the Position Time Type field is now selectable as a list or set as a data pill.

W-10574489 COCN-605

When a generic error message is returned from the API in Workday Connector, the error message that occurs in Composer is now informative.

W-10574413 COCN-705

Improved validation error messages in Workday Connector to make them more specific.

W-10574467 COCN-632

In Workday Connector, the Position Title, Supervisory Organization, and Location fields are now optional in the Create Worker action. However, if the Location value is not set on the Position object, then the Location field is required, or the Create Worker API operation will fail.”

W-10574483 COCN-612

In Jira Connector, pagination is now enabled to fetch all assignable users in the Reporter and Assignee fields when using the Create issue with custom fields action.

W-10934109

## April 28, 2022 ### What’s New - You can now connect a new system: HTTP. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. - You can now add multiple identity providers (IDP) for your organization to enable single sign-on (SSO). The following identity providers are now available: - OpenID Connect IDP - SAML 2.0 ID ## April 26, 2022 ### What’s New - When enabled, checks run every 15 minutes on running flows. If any flow fails, Composer sends an email to the owner of the flow. ### Fixed Issues
Issue ResolutionID

In the JIRA Connector, entering a string value containing quotes in the Description field no longer causes an invalid JSON parsing request.

W-11037529

## April 22, 2022 ### What’s New - In the Google Sheets and Slack Connectors, you can now hover over certain triggers, actions, and fields to view in-app contextual help. ## April 18, 2022 ### What’s New - Using the **Custom Expression Editor**, you can now use formulas to transform data from one data type to another and format it accurately.
Known IssueWorkaroundID

When using the fromDateToTime or the fromStringToDateTime function in the Custom Expression Editor, the value returned is off by one day. For example, if you enter 04/27/2022 T00:00:00Z, the value returned is 4/26/2022 5:00:00 PM.

## April 12, 2022 ### Fixed Issues
IssueID

Fixed the issue in Workday Connector in which the values in the Currency and Pay Plan fields of an Update Job Requisition action were not ordered alphabetically.

W-10663753

## April 4, 2022 ### What’s New - You can now connect a new system: Google Calendar. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. ## March 31, 2022 ### What’s New - You can now connect a new system: Gmail. See [the product documentation](https://docs.mulesoft.com/composer/ms_composer_reference) for details about each connector. ### Fixed Issues
IssueID

Updated error messages in Google Sheets Connector for empty list fields in the Create Row action.

W-10574328

Fixed the issue in Google Sheets Connector in which columns without headers were incorrectly assigned the header of the next column with a header.

W-10899109

## March 28, 2022 ### What’s New - The following objects are now available for NetSuite Connector: - Vendor - Vendor Bill - Purchase Order ## March 23, 2022 ### What’s New - The **On New or Update Invoice** trigger and the **Get Invoices** action are now available for Xero Connector. ## March 22, 2022 ### What’s New - You can now use the **Custom Expressions Editor** to build expressions and apply functions in Composer. This release supports basic math operators and basic functions such as string, date, and number. ### Fixed Issues
IssueID

Fixed the issue in Jira Connector in which flow triggers were not activated if the field values contained spaces.

W-10830185, W-10824255

## March 14, 2022 ### Fixed Issues
IssueID

Fixed the issue in Salesforce Connector in which objects containing boolean fields without set default values did not return metadata.

W-10808550

## March 9, 2022 ### Fixed Issues
IssueID

Fixed the issue in Salesforce Connector in which remaining access tokens were not refreshed in the Session Management page after deleting an access token.

W-10718676

## March 2, 2022 ### What’s New - The **Get Organization by ID** action is now available for Zendesk Connector. This action returns an organization based on specified ID search criteria. ## February 21, 2022 ### Fixed Issues
IssueID

Fixed the issue in NetSuite Connector in which triggers with the Type of Record field set to NON_INVENTORY_SALE_ITEM returned data from other record types.

W-10674134

## February 7, 2022 ### What’s New - In Stripe Connector, in the **Create Product** action, the **Images** field is now available. This field enables you to add the URL of to up to eight images that are then attached to the action. - In the QuickBooks Connector, the following fields are now available in the **Create Invoice** action: - **Transaction Tax Code** - **Item Tax Code** ## January 27, 2022 ### What’s New - The Date Time picker is now available. You can either **Pick from Calendar** or **Search Data Pills** in fields with the data type `date` or `time`. The Date Time Picker uses the time zone set in your browser by default. - The **Flow Details** page now shows the **Created on** and **Last Modified** dates in the time zone set for your browser. - When an error occurs, if there is additional information about the error, you can click the **More details** link in the error message. Using the information provided in the **Error** window, you can troubleshoot the issue or copy the **Trace ID** to provide to support. You can also click the **Contact MuleSoft Support Team** button to contact support directly. ## January 25, 2022 ### Fixed Issues
IssueID

The Update row action in Google Sheets Connector did not accept a data pill as an input for the Row number field.

COCN-910

## January 19, 2022 ### Fixed Issues
IssueID

Upgraded library dependencies.

COCN-873

## January 13, 2022 ### Fixed Issues
IssueID

Upgraded library dependencies.

COCN-894

## January 7, 2022 ### What’s New - MuleSoft Composer now supports the `list of strings` data pill. You can now type characters, dates, booleans, or numbers into a field and a list of matching strings is returned in a dropdown. ## January 5, 2022 ### Fixed Issues
IssueID

Fixed the issue in which NetSuite Connector’s metadata resolution fails and produces an empty error message. The error no longer occurs.

COCN-875

## December 21, 2021 ### Fixed Issues
IssueID

Fixed an issue in Asana Connector in which an error appeared when establishing a connection between the connector and Composer.

SE-12452

## December 16, 2021 ### What’s New - In Google Sheets Connector, when using the Create/Update Row action, you can now transfer multiple rows of data. ### Fixed Issues
IssueID

Previously, in Google Sheets Connector when Google Sheets was the trigger, all output fields were returned as text regardless of the assigned data type (for example, int or bool). As a result, if you attempted to map the trigger data pills to non-text fields in the action, you encountered an error. Now, trigger fields retain their original data types and you can map them appropriately in subsequent actions.

SE-227701, COCN-575

Fixed an issue in Google Sheets Connector in which metadata from a document containing a space failed.

COCN-742

Upgraded library dependencies.

## December 9, 2021 ### Fixed Issues
IssueID

Fixed metadata pagination issues in Xero Connector.

CSCA-1106

Fixed failing sample data requests for the Get contact by ID and Search contacts actions in Xero Connector.

CSCA-1044

Fixed the field labels in Xero Connector to match the corresponding field names in the Xero APIs.

CSCA-1043

Fixed field labels in Xero Connector.

CSCA-1040

## December 2, 2021 ### What’s New - NetSuite Connector now supports the **Job** record type. - The NetSuite connector now supports the **External** value in the **ID Type** field for the **Update Record** action. - The NetSuite connector now supports **ID Type** values for the **Delete Record** action. - The NetSuite connector now supports the **Assembly Item** record type. - Jira Connector now supports spaces in input fields for all operations. - Actions in Jira Connector now support the `Comment` field. ### Fixed Issues
IssueID

When some metadata subcategories are empty, metadata can be refreshed in the flow.

SE-23496

Fixed the issue when processing custom fields with empty values.

SE-23068

The NetSuite XML request no longer requires the runServerSuiteScriptAndTriggerWorkflows flag.

SE-22758

Fixed the issue when processing date/time custom fields.

COCN-735

## November 23, 2021 ### Fixed Issues
IssueID

When adding a For Each block to a flow control in Salesforce Connector, the For Each block shows the object label name instead of the object API name.

COCN-745

## November 5, 2021 ### What’s New MuleSoft Composer is generally available. ## Related Resources - [Salesforce Help](https://help.salesforce.com) - [MuleSoft Services](https://www.mulesoft.com/support-and-services) --- product: Composer --- # MuleSoft Composer: Getting Started > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Check that you meet the listed requirements before you set up Composer. Then you can set up and begin using Composer. ## Requirements and Restrictions - The maximum number of concurrent users supported by an organization is 25. - You must purchase a MuleSoft Composer license, which is sold separately from the Anypoint Platform license. - If your company network has a stringent firewall or list of blocked IP addresses, your network administrator must add `*.mulesoft.com` to the list of allowed addresses. IP addresses used by Composer are dynamic; therefore, MuleSoft can’t provide a list of IP addresses. - You must relax any IP restrictions for the connections that you create to data sources and data targets as detailed in the Composer setup instructions. - Composer does not currently support mobile platforms. ### Browser requirements: - Don’t use incognito mode or private browsers to access Composer. - If you use Firefox or Chrome, allow third-party cookies. - When you connect to another system, follow the requirements and restrictions applicable to that connection. - Composer fields with date values use the format _YYYY-MM-DDThh:mmZ_. ## Available Regions In MuleSoft Composer, the Anypoint Platform control and runtime planes for an organization are selected by the AE at provisioning time (during the quoting process). Users cannot change the mapping. MuleSoft Composer is available in the US East (N. Virginia) and EU (Frankfurt) regions. ## Set Up Composer After you purchase MuleSoft Composer, it automatically creates a MuleSoft Composer org for you and sends a welcome email so that you can access MuleSoft Composer for the first time. After you successfully connect, you then invite users to access that MuleSoft Composer org. ### Access MuleSoft Composer as for the First Time As your organization’s primary administrator, follow these steps to initiate your MuleSoft Composer org: 1. Log in to your email account, find the welcome email from MuleSoft Composer, and then click **Accept invitation**. 2. In the **Create account** form, complete the required fields, including a password of at least eight characters that contains at least one uppercase letter, one lowercase letter, and one number. 3. Click **Create account**. 4. Log in to MuleSoft Composer using the username and password you just created. 5. In **Register a Verification Method**, select a verification method, follow the steps to set up your multi-factor authentication, and then click **Connect**. The MuleSoft Composer overview page appears. ### Invite Users to Access MuleSoft Composer After you access your MuleSoft Composer org using administrator credentials, you then invite your organization’s users to your new MuleSoft Composer account: 1. In the MuleSoft Composer sidebar, click **Settings** and then click **Users**. 2. On the **Users** page, click **Add Users**. 3. In the **Invite New Users** window, enter the email addresses of the users you want to invite, separating the names by using commas. 4. Select the permissions that you want to apply to that group of users and then click **Invite**. The following permissions are available: - **Builder**: Enables all users in the group to create and manage flows. - **Administrator**: Enables all users in the group to invite and manage users in addition to creating and managing flows. The invited users receive the MuleSoft Composer welcome email. ### Monitor Pending Unaccepted Invitations After inviting users, you can monitor each pending invitation that has not yet been accepted. To monitor a pending invitation: 1. In the MuleSoft Composer sidebar, click **Settings** and then click **Users**. 2. On the **Users** page, elect the **Pending Invitations** tab. Information about the users' invitations appear. In the menu: 1. Click the options icon to the right of the user invitation that you want to monitor. 2. If the invitation to that user is older than 14 days and is about to expire, if you want to resend it, click **Resend Invite**. 3. If you want to revoke the invitation to that user, click **Revoke Invite**. ## Manage Users As administrator, you are responsible for managing your MuleSoft Composer users to meet your organization’s business needs. The following user management tasks are available: - Change user roles - Reset user passwords - Reset user multi-factor authentication (MFA) methods - Delete users ### Change User Roles To change a user’s role: 1. In the MuleSoft Composer sidebar, click **Settings** and then click **Users**. 2. On the **Users** page, next to the user’s email address, click the options icon and then click **Manage**. The user’s page appears. 3. Select the **Permissions** tab. 4. Select the permission setting for the user and then click **Save**. ### Reset User Passwords To reset a user’s password: 1. In the MuleSoft Composer sidebar, click **Settings** and then click **Users**. 2. On the **Users** page, next to the user’s email address, click the options icon, and then click **Reset Password**. An email is sent to the user with instructions for resetting their MuleSoft Composer MFA settings. ### Reset User Multi-factor Authentication (MFA) Methods To reset a user’s MFA method: 1. In the MuleSoft Composer sidebar, click **Settings** and then click **Users**. 2. On the **Users** page, next to the user’s email address, click the options icon, and then click **Reset Multi-factor Auth**. An email is sent to the user with instructions for resetting their MuleSoft Composer password. ### Delete Users To delete a user: 1. In the MuleSoft Composer sidebar, click **Settings** and then click **Users**. 2. On the **Users** page, next to the user’s email address, click the options icon, and then click **Delete**. A message appears, warning you that deleting a user cannot be undone. 3. Click **Delete**. ### Enable Multiple Identification Providers (IDP) As an administrator, you can enable users to add identity providers (IDPs) for their organization. Note that: - If an IDP user is deleted from MuleSoft Composer and that user subsequently logs in to MuleSoft Composer using the IDP, the user profile is restored in the `Disabled` state. To allow the user to authenticate again, an toggle the state to `Enabled`. - You cannot disable the creation of new users via the **Users** page. - Deleting an IDP user does not stop the flows activated by that user. - When MuleSoft Composer is dynamically registered as an OpenID Connect SSO provider in Okta, MuleSoft Composer is named “Anypoint Platform” in Okta. For more information on identity management in MuleSoft, see the [Access Management](https://docs.mulesoft.com/access-management/external-identity) documentation. To enable OpenID Connect (OIDC) IDP: 1. In the MuleSoft Composer sidebar, click **Settings** and then click **Multiple IDP**. 2. On the **Identity Provider** page, click **Add Identity Provider** > **OpenID Connect**. 3. In the **New Identity Provider** page, complete the required fields: - **Name**: The nickname for this IDP. - **Client Registration URL**: The URL to dynamically register client applications for your identity provider. This field appears when you select **Dynamic Registration**. - **Authentication Header**: The header that provides credentials to authenticate a server. This header is required if the provider restricts registration requests to authorized clients. This field appears when you select **Dynamic Registration**. - **Client ID**: The unique identifier that you provided for your manually created client application. This field appears when you select **Manual Registration**. - **Client Secret**: The password, or secret, for authenticating your MuleSoft Composer organization with your Identity Provider. This field appears when **Manual Registration** is selected. - **OpenID Connect Issuer**: The location of the OpenID Provider. For most providers, `.well-known/openid-configuration` is appended to the issuer to generate the metadata URL for OpenID Connect specifications. If your OpenID Provider is Salesforce, then you must provide the value for `issuer`. - **Authorize URL**: The URL where the user authenticates and grants OpenID Connect client applications access to the user’s identity. - **Token URL**: The URL that provides the user’s identity encoded in a secure JSON Web Token. - **User Info URL**: The URL that returns user profile information to the client app. 4. Optionally, expand **Advanced Settings**, and provide the following values: - **Group Scope**: The OIDC scope to request the group claim. - **Group Attribute JSON Data Expression**: The JSONata expression used to select the groups from the user information or ID token. The result must be an array of strings. - **Disable server certificate validation** checkbox: Select to disable server certificate validation if your OpenID client management instance presents a self-signed certificate or one signed by an internal certificate authority. 5. Click **Save**. 6. Log out of MuleSoft Composer, navigate to the sign-on URL you entered in the **New Identity Provider** page, and then log in through your identity provider to test the configuration. To enable SAML 2.0 IDP: Note that the file-based configuration of a SAML 2.0 is not supported. 1. In the MuleSoft Composer sidebar, click **Settings** and then click **Multiple IDP**. 2. On the **Identity Provider** page, click **Add Identity Provider** > **SAML 2.0**. 3. In the **New Identity Provider** page, complete the required fields: - **Name**: Enter a nickname for this IDP. - **Sign On URL**: The redirect URL provided by the IDP for sign in. For example, `https://example.com/sso/saml`. - **Sign Off URL**: The URL to redirect sign-out requests, so users both sign out of MuleSoft Composer and have their SAML user’s status set to `signed out`. - **Issuer**: The ID of the identity provider instance that sends SAML assertions. - **Public Key**: The Public key provided by the identity provider, which is used to sign the SAML assertion. It is the `X509Certificate` value in the SAML response. - **Audience**: An arbitrary string value that identifies your MuleSoft Composer organization. The typical value for this string is `.composer.mulesoft.com`. To find your `organizationDomain`, log in to MuleSoft Composer and go to **Settings > Multiple IdP**. At the bottom of the page, you can see the statement `Users can sign in through external IdPs by visiting your organization domain:` followed by a URL. The part after the last `/` in the URL is the `organizationDomain`. For example, if the statement says `Users can sign in through external IdPs by visiting your organization domain: https://composer.mulesoft.com/login/domain/composer123`, the `organizationDomain` is `composer123`. - **Single Sign On Initiation**: Specify whether SSO can be initiated by MuleSoft Composer, your identity provider (for example, Okta), or both. - The **Service Provider Only** option allows only MuleSoft Composer to initiate SSO. - The **Identity Provider Only** option allows only your external identity provider to initiate SSO. - The **Both** option allows either MuleSoft Composer or your external identity provider to initiate SSO. The default value for this setting for newly configured identity provider configurations is **Both**. 4. Optionally, expand **Advanced Settings**, and provide the following values: - **Username Attribute**: Field name in the SAML `AttributeStatements` that maps to the user’s name. If no value is configured, the `NameID` attribute of the SAML `Subject` is used (Note: This is outside the SAML `AttributeStatements`). - **First Name Attribute**: Field name in the SAML `AttributeStatements` that maps to `First Name`. - **Last Name Attribute**: Field name in the SAML `AttributeStatements` that maps to `Last Name`. - **Email Attribute**: Field name in the SAML `AttributeStatements` that maps to `Email`. - **Group Attribute**: Field name in the SAML `AttributeStatements` that maps to `Group`. - **Require encrypted SAMl assertions** checkbox: If enabled, the SAML assertions sent from the IDP must be encrypted and follow the guidelines mentioned in the prerequisites. 5. Click **Save**. 6. Log out of MuleSoft Composer, navigate to the sign-on URL you entered in the **New Identity Provider** page, and then log in through your identity provider to test the configuration. ## Enable Flow Failure Notifications As administrator, you can enable flow failure notifications via email. When enabled, checks run every 15 minutes on running flows. If any flow fails, Composer sends an email to the owner of the flow. Note that: - A maximum of four consecutive emails are sent for the same error. - The error log for the flow resets every 24 hours. - The error log only runs while the flow runs. To enable email notifications: 1. In the Composer **Home** page, click **Settings**. The **Account** page appears. 2. In the sidebar, click **Email Notifications**. 3. In the **Receive email notifications when flows fail to run** row, toggle the button to enable email notifications. ## Connect Composer to Anypoint Platform Organizations that use both MuleSoft Composer and Anypoint Platform can connect the two products. To link Composer to Anypoint Platform: 1. In MuleSoft Composer, in the navigation pane, click **Settings** > **Account**. The **Account** page appears. 2. On the **Account** page, copy the value in the **Organization ID** field. 3. Log in to the Anypoint Platform organization that you want to connect to MuleSoft Composer. The **Anypoint Platform** page appears. 4. In the navigation pane, click [**Access Management**](https://docs.mulesoft.com/access-management/managing-your-account). The **Access Management** page appears. 5. In the **Access Management** page, in the navigation pane, click **Composer Sync**. If the **Composer Sync** button is not available, first click **Try New Features** to enable the button. The **Add Composer Organization** window appears. 6. In the **Add Composer Organization** window, in the **Organization ID** field, paste the **Organization ID** that you copied from the **Account** page of MuleSoft Composer and then click **Add**. 7. Open MuleSoft Composer and refresh the page. 8. In MuleSoft Composer, in the navigation pane, click **Settings** > **Account**. The **Account** page appears, displaying a linking request from Anypoint Platform. 9. Click **Review and Confirm**. 10. In the **Access Token** section, click **Authenticate in Anypoint**. The Anypoint Platform login page appears. 11. Log in to Anypoint Platform. Ensure that the user logging into Anypoint Platform has the right [permissions to create a client app](https://docs.mulesoft.com/api-manager/latest/access-client-app-id-task). 12. In the **Client App** section, click **Create Client App**. The Composer organization is now linked to the Anypoint organization. ## API Sharing MuleSoft Anypoint Platform customers can share externally available APIs managed in Anypoint Platform with business users for consumption in a MuleSoft Composer flow. Before sharing APIs from Anypoint Platform to MuleSoft Composer, ensure that: - Your organization uses Anypoint Platform for API Management. - Your Anypoint organization doesn’t employ [external client providers](https://docs.mulesoft.com/api-manager/latest/configure-multiple-credential-providers#how-using-multiple-external-client-providers-works). - Your Anypoint organization doesn’t currently have a client app named “Composer”. - Your organization has [Rest APIs](https://docs.mulesoft.com/exchange/to-create-an-asset#create-an-api-asset) managed by API Manager that conform to the following: - The API specifications use either RAML or OpenAPI. - The API uses basic authentication, bearer token, or API Key in conjunction with a Client ID and Secret. - The API has a value for the **Consumer Endpoint** field in API Manager. - Composer organizations are [linked to Anypoint organizations](#connect-composer-to-anypoint-platform). - The API must be accessible from the public internet. For more information on how to connect externally available APIs, refer to [Rest Consumer Connector](https://docs.mulesoft.com/composer/ms_composer_rest_consumer_reference). ### Share an API Instance with Composer If you manage your APIs with Anypoint API Manager, you can share those APIs with MuleSoft Composer. To share an API Instance with MuleSoft Composer: 1. [Create an API Instance in Anypoint Platform](https://docs.mulesoft.com/api-manager/latest/api-instance-landing-page). 2. In Anypoint Platform, in the navigation pane, click **Exchange**. 3. In the list, find the API instance that you want to share, click **Request access**, and then click the Client App that was created by MuleSoft Composer. The **Request access** window appears. 4. In the **Request access** window, click **Request access**. 5. Open MuleSoft Composer and then open the flow to ensure that the shared API appears in the **Shared Apps** section of the canvas. ### Share an API Instance with a Single-Tenant Anypoint Platform Organization You can connect a single-tenant, Anypoint Platform organization to Composer for API Sharing. Using API Sharing, you can expand the connectivity to more systems, have more control over both API management and governance, and consume complex APIs built in Anypoint Platform. To enable API sharing for a single-tenant organization: 1. [Ensure that the shared API appears in the **Shared Apps** section of the canvas](#api-sharing) and that you have the [Composer Super User](#admin-manage-users) role. 2. In the Composer **Home** page, click **Settings**. The **Account** page appears. 3. Expand the **Shared APIs** section in the **General** tab and click the radio button to enable API Sharing for a single-tenant organization. A Client App named _Composer_ is created within the organization. If a Client App named _Composer_ already exists, manually select the Client App to which you want to grant access from the drop-down menu. ### Disconnect Composer Connection to Anypoint Platform You can disconnect your connection from MuleSoft Composer to Anypoint Platform; however, removing this connection does not delete existing configurations. To disconnect your MuleSoft Composer connection to Anypoint Platform: 1. Log in to the Anypoint Platform organization containing the connection to MuleSoft Composer that you want to disconnect. The **Anypoint Platform** page appears. 2. In the navigation pane, click [**Access Management**](https://docs.mulesoft.com/access-management/managing-your-account). The **Access Management** page appears. 3. In the navigation pane, click **Connected Apps**. The **Connected Apps** page appears. 4. Optionally, on the **Connected Apps** page, if you want to remove Composer’s access to a single API, click the options button for the API and then click **Remove**. 5. In the **Owned Apps** tab, next to **Composer API Sharing**, click the options button, and then click **Delete**. MuleSoft Composer is now disconnected from Anypoint Platform. ## Access Composer with MuleSoft Automation Package To access Composer with the MuleSoft Automation package, first grant access to users and then log in to Anypoint Platform and open Composer. ### Admin: Grant Access to Composer Users To access Composer via Anypoint Platform, the Anypoint Admin must first: 1. Create an [Anypoint Platform Account](https://docs.mulesoft.com/access-management/managing-your-account) for the users. 2. Grant one of the following [roles](#change-user-roles) to each user: 1. **Composer Base User**: This user can create and manage their own flows. 2. **Composer Super User**: This user can create and manage their own flows. Additionally, this user can take ownership and manage any flows in the Anypoint Composer org. The [Usage Summary](https://docs.mulesoft.com/general/automation-credits-usage-and-rates) is only available to those with the Composer Super User role. ### Access Composer with the MuleSoft Automation Package To access Composer with the MuleSoft Automation Package: 1. Log in to [Anypoint Platform](https://docs.mulesoft.com/anypoint-code-builder/start-acb). 2. On the **Anypoint Platform** page, click **Go to Composer**. ## Related Resources - [Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # MuleSoft RPA Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt [Mulesoft Robotic Process Automation (RPA)](https://docs.mulesoft.com/rpa-home/) is a software technology that combines robotics and automation to perform repetitive tasks. RPA uses a software bot to mimic the actions a person would take, by automating repetitive manual tasks like entering text and updating fields through one or multiple application user interfaces. ## RPA Use Cases You can benefit in many ways by implementing RPA into your processes, either by saving time, reducing costs, or preventing errors caused by human input. The most common use cases for RPA include: - Data extraction and data entry Extract data from PDF, CSV, and other file formats and send this data to other systems. - Payroll processing Automate payroll data entry and validate the information across multiple systems. - Price comparisons Automate the monitoring of input prices and competitor prices. - Processing refunds Automate the processing of customer refund requests to make them quicker. - Customer information updates Update customer information automatically across different systems that do not have APIs and that are accessible only through the UI. ## Invoke Short-Running RPA Processes When invoking short-running RPA processes from Composer, invoke a single flow by choosing the **Use response in this flow** button. The RPA execution is retrieved by the RPA step and subsequent steps can use the RPA step datapills. If the **Use the response in the same flow option** is enabled and the process takes longer than three minutes to respond, the process stops and an error message appears indicating that the polling process timed out. ## Invoke Long-Running RPA Processes When invoking RPA processes from Composer, a two-flow Composer scenario is only required when the RPA process takes longer than the allowed completion timeout period, which is three minutes. For long-running processes, you can configure two flows that finish within the Composer flow timeout period to avoid blocking other in-queue events from processing while waiting for the RPA process to complete. For the first flow, select **Poll response from another flow** and then configure a second RPA poll trigger flow that listens to executions for the process invoked by the first flow. When activating or testing the two-flow scenario, ensure that you start the second poll trigger flow first and then start the invoke flow. This way, the poll trigger flow won’t miss events generated by the invoke flow. If data pills from the first RPA invoke flow are needed in the second poll trigger flow, store them in an external database using the **RPA Execution ID** as the key. The data pills are then retrieved by the **RPA Execution ID** when the poll trigger polls the executions from RPA. If multiple users create invoke or poll flows for the same process, track execution IDs through the external database. If you are not using an external database to track the process execution, all RPA executions for the selected RPA process complete and the RPA does not filter the executions by user. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Display Name Enter a connection name to remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. RPA API URL The URL provided by the RPA Admin who is creating the processes that you want to integrate via Composer. The **RPA API URL** is the RPA Manager URL with `/rpa/api/v1` appended to it. For example, if your RPA Manager URL is `[https://myOrg.rpa.mulesoft.com](https://myOrg.rpa.mulesoft.com)`, then the value in the **RPA API URL** field is `[https://myOrg.rpa.mulesoft.com/rpa/api/v1](https://myOrg.rpa.mulesoft.com/rpa/api/v1)`. API key The authentication code for the user. The API key is generated in the [RPA User Management](https://docs.mulesoft.com/rpa-manager/usermanagement-connect#create-an-api-key-for-a-user) module. OAuth 2.0 Authorization You can use OAuth 2.0 Client credentials to obtain an access token from a user-defined path. Provide a value for the following: - **RPA API URL**: The URL provided by the RPA Admin creating the processes that you want to integrate with Composer. The **RPA API URL** value is the RPA Manager URL with `/rpa/api/v2` appended to the end. For example, if your RPA Manager URL is `https://myOrg.rpa.mulesoft.com`, then the value in the **RPA API URL** field is `https://myOrg.rpa.mulesoft.com/rpa/api/v2`. - **Client ID**: The OAuth Client ID that you use to log in to MuleSoft RPA. - **Client Secret**: The OAuth Client Secret that you use to log in to MuleSoft RPA. - **Token URL**: The URL of the endpoint that provides the access token for MuleSoft RPA. For users in the United States, enter: `https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token`. For users in the European Union, enter: `https://eu1.anypoint.mulesoft.com/accounts/api/v2/oauth2/token`. - **Scopes**: The OAuth scopes. Enter the following OAuth scopes for full access to the RPA API: - `RPA Integrator` - `RPA Invocable Process` ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: RPA Process Execution Completed Create listeners that check the status of a specific RPA process. When the RPA process finishes the execution, the polling trigger processes the configured activities in the Composer flow. Note that you must select whether you want listeners for _successful_ or _failed_ executions. You cannot receive notifications for both. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Invoke RPA Process Invokes a process in RPA. Provide a value for **RPA Process Name**. Additionally, select the activity parameters that you want to set and set values for those parameters. ## Test the RPA Process You can test your RPA Process instantly without invoking the process. To test your RPA Process: 1. In your RPA Process flow, in an action or trigger, click the gear. The **Step Configurations : Invoke RPA Process** window appears. 2. In the window, select **Don’t run the RPA Process; instead, use the sample output data** and then click **Save**. The RPA Process is skipped and tested. The output of the process appears with sample data. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) - [Mulesoft Robotic Process Automation (RPA)](https://docs.mulesoft.com/rpa-home/) --- product: Composer --- # NetSuite Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Whether you are using NetSuite as a data source (take a new NetSuite contact and copy it to Salesforce, for example) or a data target (when a Salesforce opportunity closes, create a NetSuite sales order), the details of how to work with data in a flow are specific to the data source or data target. ## Connection Details When connecting to NetSuite via MuleSoft Composer, in NetSuite: - Ensure that token-based authentication is enabled by navigating to **Setup** > **Integration Management** > **Manage Integration** > **Authentication**. - Ensure that the role used in the integration is not using two-factor authentication by navigating to **Setup** > **User/Roles** > **Two-Factor Authentication Roles**. Composer supports NetSuite instances of 2020.2 and later. To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. You must connect to NetSuite as a regular user (WSU), not a concurrent user (cWSU). Connection Display Name The connection display name is a unique name that you choose to identify the connection. Account The account ID as listed in your NetSuite instance by accessing **Setup > Integration > SOAP Web Services Preferences**. The value is a string of letters and numbers, for example: `TESTME1234567`. Consumer Key The consumer key generated in NetSuite by accessing **Setup > Integration > Manage Integrations** Consumer Secret The consumer secret generated in NetSuite along with the consumer key Token ID The token ID generated in NetSuite Token Secret The token secret generated with the token ID in NetSuite SOAP Port The value can’t be edited at this time. ### Establish a NetSuite Connection To use MuleSoft Composer to establish a NetSuite connection, you must have an account in Salesforce to store the internal ID of the associated customer in NetSuite. You must ensure that a custom field, **NetSuite ID**, has been created for the Account object in the organization. ### Set NetSuite Permissions Access to NetSuite data and to the NetSuite user interface is based on users, roles, and permissions. For more information about users, roles, and permissions, see the [NetSuite documentation](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_N284861.html). MuleSoft provides a bundle that contains a role with the permissions required for integrating Composer with NetSuite. To install the bundle, follow these steps: 1. Go to **Customization > SuiteBundler > Search & Install Bundles**. 2. Type `462515` in the keyword search. 3. Click on **MuleSoft Composer** and review the **Components** tab. 4. Click **Install** and then **Install Bundle**. The installation takes a few minutes. After installing the bundle, generate credentials to configure the connection to Composer. Store the credentials securely since the credentials are visible only once for security purposes. If you need additional information, contact your NetSuite administrator. To generate credentials in the form of tokens, follow these steps: 1. Assign the newly created **MuleSoft Composer** role to the desired user: 1. Go to **Setup > Users/Roles > Manage Users**. 2. Click on the user who will host the integration. You can use a generic account such as `it@company.com` that doesn’t need its own license. 2. Create an integration: 1. Go to **Setup > Integration > Manage Integration > New**. 2. Enter a name and appropriate concurrency for the integration. You can start low and use 1-2 units lower than the maximum concurrency allowed. 3. Select the **Token-Based Authentication** box. 3. Generate access tokens: 1. Go to **Setup > Users/Roles > User Management > Access Tokens**. 2. Set the application to the integration created in the previous step. 3. Assign the user and click **Save**. 4. Identify the NetSuite account ID by going to **Setup > Company > Company Information**. ### Run Server SuiteScript to Trigger Workflows If your NetSuite configuration preferences are set to run server SuiteScript and trigger workflows, the following criteria are required: - The **Audience** field must have all roles selected. - The **Execute As Role** field must be set to `Administrator`. - The **Log Level** field must be set to `Debug`. ### Null Values By default, Composer ignores fields with empty (_null_) values. To change this behavior to clear the existing value of the field when the field value is null, on the card, click the gear, and then select `Clear on Null Values`. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: On Updated Records A record is created or an existing record is updated. On New Records A new record is created in NetSuite. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. Note that Composer does not store the user’s local timezone; therefore, when a value is entered in a `DateTime` field, Composer assumes that the `DateTime` value entered is in UTC format. A time zone must include either the symbol `+` in the time value or the symbol `-` in the date value. For example, 12:30 p.m. on June 1, 2019, in the Macau time zone is represented as `2019-06-01T12:30:00+08:00`. Additionally, if the date is _not_ entered in UTC, Composer will automatically convert the date to UTC format which may or may not be accurate for the user’s local time zone which could affect the resulting logic. For more information, see the [Netsuite Documentation](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1521451348.html#bridgehead_4725944921). This system provides the following actions: Update Record A record is changed. Create Record A record is created. Upsert Record A record is created or updated. Delete Record A record is deleted Get Records Returns a list of up to 500 records based on specified search criteria: ![Get Records example action configuration for NetSuite Connector](/mulesoft/current/en-us/composer/_images/images/get-records-netsuite.png) - You can choose which fields the action fetches in the **Result fields** section. - You can add one or more conditions to specify which types of records should be returned in the **Criteria** section. For example, you could specify that the last name begin with "B." - You can select **All records** in the **How Many Records to Retrieve** section to retrieve a list of records that match your criteria. The **All records** option is selected by default. If you want to access a single record from the list, you must add a [For Each loop](https://docs.mulesoft.com/composer/ms_composer_flows#create-and-test-a-for-each-loop) to your flow. - If you have filtered your search with a unique identifier, you can select **Only the first record** in the **How Many Records to Retrieve** section to return a single record. Returning a single record will change the output of the search from a _list_ to a _single_ record. The **Get records** action searches for all records and returns only the first record in the list. If you previously selected **All records** and then changed your selection to **Only the first record**, data pills in your existing flow could be invalidated. ## Record Types The following record types are supported:
Record TypeTriggerAction

BILLING_SCHEDULE

X

CASH_SALE

X

X

CASH_REFUND

X

X

CLASSIFICATION

X

CONTACT

X

X

CREDIT_MEMO

X

X

CURRENCY

X

CURRENCY_RATE

X

CUSTOMER

X

X

CUSTOMER_DEPOSIT

X

X

CUSTOMER_PAYMENT

X

X

CUSTOMER_REFUND

X

X

CUSTOM_RECORD_TYPES

X

X

DEPARTMENT

X

ESTIMATE

X

X

EMPLOYEE

X

X

GIFT_CERTIFICATE_ITEM

X

X

INVENTORY_ADJUSTMENT

X

X

INVENTORY_ITEM

X

X

INVOICE

X

X

ITEM_FULFILLMENT

X

X

ITEM_GROUP

X

X

ITEM_RECEIPT

X

X

JOURNAL_ENTRY

X

X

KIT_ITEM

X

X

LEAD

X

X

LOCATION

X

LOT_NUMBERED_ASSEMBLY_ITEM

X

X

LOT_NUMBERED_INVENTORY_ITEM

X

X

NON_INVENTORY_PURCHASE_ITEM

X

X

NON_INVENTORY_RESALE_ITEM

X

X

NON_INVENTORY_SALE_ITEM

X

X

OPPORTUNITY

X

X

OTHER_CHARGE_PURCHASE_ITEM

X

X

OTHER_CHARGE_RESALE_ITEM

X

X

OTHER_CHARGE_SALE_ITEM

X

X

PARTNER

X

X

PAYMENT_ITEM

X

X

PRICE_LEVEL

X

PROSPECT

X

X

PURCHASE_ORDER

X

X

RETURN_AUTHORIZATION

X

X

SALES_ORDER

X

X

SERIALIZED_ASSEMBLY_ITEM

X

X

SERIALIZED_INVENTORY_ITEM

X

X

SERVICE_PURCHASE_ITEM

X

X

SERVICE_RESALE_ITEM

X

X

SERVICE_SALE_ITEM

X

X

SUBSIDIARY

X

SUPPORT_CASE

X

X

TIME_BILL

X

X

TIME_SHEET

X

X

TRANSFER_ORDER

X

X

VENDOR

X

X

VENDOR_BILL

X

X

> [!NOTE] The CURRENCY and PAYMENT\_ITEM objects are not supported by the GET RECORDS action. > > The LEAD and PROSPECT objects are supported only by the GET RECORDS action. The LEAD and PROSPECT > objects are subtypes of the CUSTOMER object, so to use the LEAD and PROSPECT objects for other > actions, you can set the object type to CUSTOMER and set the `internalId` of `entityStatus` to the > corresponding value according to the NetSuite documentation. > > The DEPARTMENT, LOCATION, PRICE\_LEVEL, and SUBSIDIARY objects are supported only by the GET > RECORDS action. ## Custom Fields Using MuleSoft Composer, you can access custom field values for actions and triggers that you set in the NetSuite record. ## List Objects List objects are supported. The following list objects are supported for the **Get Records** action: - Department - Locations - Price Level - Subsidiary ## Custom Picklists You can map values to custom picklists using the value name. Internal IDs are not required to map values to custom picklists. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Preparation Checklist for Composer > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Before you build a flow, assemble the information you need: - The username, password, and the URL where you send these credentials for every data source or data target. This user must have access to the data you plan to work with. - The trigger for your flow: an event like "a Google Sheet row is updated when I add a new Salesforce contact," or a time period like "every fifteen minutes." - An ordered list of all the steps and all the logic required to move and transform your data: - Which records, rows, or other data do you need to access? - What are you trying to do? For example: - Pull changes and copy them - Transform the structure or type of the data - Add information from one source to information in another - Will you filter out some records based on criteria such as "owned by," or "updated after"? Of course, if you aren’t certain of some of this information, you can still use Composer. Flows, the main building block of process automation, don’t start working until you activate them. You can change them as you create them, so feel free to experiment. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Quickbooks Online Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt MuleSoft Composer’s QuickBooks Online Connector automates financial data synchronization between QuickBooks and other business systems. You can create, update, and retrieve accounting records, sync customer and vendor information, and streamline financial reporting workflows. The connector integrates seamlessly with QuickBooks Online’s API to keep your financial data accurate and up to date across all applications. QuickBooks Online Connector uses [API minor version 62](https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api/minor-versions). ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Username The OAuth username that you use to log in to QuickBooks Online. Password The OAuth password that you use to log in to QuickBooks Online. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New Invoice Triggers when a new invoice is created. New or Updated Invoice Triggers when an invoice is created or when an existing invoice is updated. New Customer Triggers when a new customer is created. New or Updated Customer Triggers when a customer is created or when an existing customer is updated. New Item Triggers when a new item is created. New or Updated Item Triggers when an item is created or when an existing item is updated. New Estimate Triggers when an estimate is created. New or Updated Estimate Triggers when an estimate is created or when an existing estimate is updated. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create Invoice Creates a new invoice. Provide a value for **Customer ID**. Update Invoice Updates an existing invoice. Provide a value for **Invoice ID**. Create Customer Creates a new customer. Update Customer Updates an existing customer. Provide a value for **Customer ID**. Create Item Creates a new item. The following fields are required: - **Name** - **Type** - If the value in the **Track Quantity on Hand** is equal to `True`, the following fields are required: - **Asset Account Reference** - **Invoice Start Date** - **Quantity on Hand** Update Item Updates an existing item. The following fields are required: - **Item ID** - If the value in the **Track Quantity on Hand** is equal to `True`, the following fields are required: - **Asset Account Reference** - **Invoice Start Date** - **Quantity on Hand** Query Invoice Searches for an existing invoice. One or more of the following fields must be populated to return results: - **Invoice ID Equals** - **Customer ID Equals** - **Due Date Greater Or Equal** - **Date Created Greater or Equal** - **Last Updated Date Greater or Equal** Query Customer Searches for an existing customer. One or more of the following fields must be populated to return results: - **Customer ID Equals** - **Customer Display Name Equals** - **Customer Display Name Like** - **Active Equals** - **Primary Email Address Equals** - **Primary Email Address Like** - **Balance Greater Or Equal** - **Date Created Greater or Equal** - **Last Updated Date Greater or Equal** Query Item Searches for an existing item. One or more of the following fields must be populated to return results: - **Item ID Equals** - **Name Equals** - **Name Like** - **Active Equals** - **Type Equals** - **Date Created Greater or Equal** - **Last Updated Date Greater or Equal** Get Invoice Returns an invoice. Provide a value for **Customer ID**. Get Customer Returns a customer. Provide a value for **Customer ID**. Get Item Returns an item. Provide a value for **Item ID**. Create Estimate Creates an estimate record. Provide a value for the following fields: - **Customer ID** - **Estimate Parameters** Get Estimate Returns an estimate. Provide a value for **Estimate ID**. Update Estimate Updates the estimate record. Provide a value for the following fields: - **Estimate ID** - **Estimate Parameters** ## Custom Fields Using MuleSoft Composer, you can access custom field values for actions and triggers that you set in the Quickbooks Online record. Note that the QuickBooks Online API only returns the first three custom fields created for the type `string`. Any subsequent custom string fields or any fields of another data type, such as `date` or `picklist`, are not writable fields within Composer. For more information, see the [Quickbooks Online documentation](https://developer.intuit.com/app/developer/qbo/docs/workflows/create-custom-fields). ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Rest Consumer Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Rest Consumer Connector connects externally available APIs managed in Anypoint that are not currently supported through dedicated connectors. Use Rest Consumer Connector to consume these APIs in a Composer flow to create integrations that span beyond out-of-the-box connectors. Rest Consumer Connector does not automatically appear in the list of connectors to use in your flow. To use Rest Consumer Connector, you must first connect your Composer org to your Anypoint org. For more information, refer to [Connect Composer to Anypoint Platform](https://docs.mulesoft.com/composer/ms_composer_prerequisites#connect-composer-to-anypoint-platform) and [API Sharing](https://docs.mulesoft.com/composer/ms_composer_prerequisites#api-sharing). ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Display Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Authorization Type The following authorization types are available: - **API Key** The API Key connects to applications without explicitly defining a user. You must add this key to all requests, and the cloud application identifies the origin of the request and completes the authorization. Provide a value for the following fields: - **Base URL** - **Name** - **Value** - **Sent As**: Select one of the following values: - **Header**: If selected, Composer adds the following header to the request: `Name: Value`. - **Query Parameter**: If selected, Composer adds the following query parameter to the request: `Name=Value`. - **Client ID**: This field is used for gateway authentication, which occurs before connected API authentication. - **Client Secret**: This field is used for gateway authentication, which occurs before connected API authentication. - **Basic Authentication** The Basic Authentication method enables an HTTP user agent to provide a username and password when making an HTTP request. Provide a value for the following fields: - **Base URL** - **Username** - **Password** - **Client ID**: This field is used for gateway authentication, which occurs before connected API authentication. - **Client Secret**: This field is used for gateway authentication, which occurs before connected API authentication. - **Bearer Token Authorization** Bearer Token Authorization is the authentication process that sends a header named `Authorization` with a value of `Bearer` and a token with every request. Provide a value for the following fields: - **Base URL** - **Token** - **Client ID**: This field is used for gateway authentication, which occurs before connected API authentication. - **Client Secret**: This field is used for gateway authentication, which occurs before connected API authentication. Base URL The default location URL for the cloud application that the connection uses. ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Request When **Request** is selected in the **Action** field, a request in Rest Consumer returns the fields of the response payload. A value is required for the following fields: - **Action** - **Operation** - **Input Fields**: You can select from a static list or use a dynamic list from a data pill based on the previous step. - Optionally, if you click **URI Params**, provide a value for the **Ticket** field. - Optionally, if you click **Additional Headers**, provide a value for the following fields: - **Key** - **Value** - Optionally, if you click **Additional Query Parameters**, provide a value for the following fields: - **Key** - **Value** - **Custom Request Body**: This field is used for overriding the structure of the request body from the API specification. - **Custom Response Body**: This field is used for overriding the structure of the response body from the API specification. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Sage Intacct Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Sage Intacct is a best-in-class enterprise resource planning solution built to create and automate important financial processes and enable real-time visibility into business performance. ## Prerequisites To complete the integration of Sage Intacct Connector to Composer, you must first complete the following actions within Sage Intacct: - [Enable Web Services subscription](https://developer.intacct.com/web-services/) in the **Subscription** section of Sage Intacct. The **Web Services Subscription** is required for Composer to interact with the Sage Intacct API. - [Add your company’s **Sender ID** to the **Web Services Authorizations**](https://developer.intacct.com/web-services/) section of Sage Intacct. The **Sender ID** identifies Composer to the Sage Intacct API. You must authorize the Mulesoft **Sender ID** for your Sage Intacct instance. - [Create and assign the permissions required](https://developer.intacct.com/api/company-console/roles/) to connect to Sage Intacct. To assure account security, restrict the permissions to only the modules that you need Composer to access. In Sage Intacct: - If you are using role-based permissions, create a new role, assign the required permissions for that role, and then create a Sage Intacct Web Service Account to assign to the role. - If you are using subscription-based permissions, create a Web Services Account and assign permissions to the role in the **Subscription** section. Additionally, for quote to cash, enable permissions for the **Order Entry** module. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Company ID The customer’s company ID. Enter the ID of your Sage Intacct instance. For more information, see the [Sage Intacct documentation](https://developer.intacct.com/web-services/). User ID The user ID that you use to log in to Sage Intacct. User Password The password that you use to log in to Sage Intacct. Entity ID The Sage Intacct entity to which you want to connect. To connect at the entity level, enter the **Entity ID**. To connect to the top level of the organization, leave this field blank. For more information, see the [Sage Intacct documentation](https://developer.intacct.com/api/company-console/api-sessions/). ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New Customer Checks for a new Customer record. New or Updated Customer Checks for a new or updated Customer record. New Order Checks for a new Order record. New or Updated Order Checks for a new or updated Order record. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create Attachment Creates a new Attachment record. In Sage Intacct, attachments are entities that contain files. An attachment object can be empty or can have files. You can add files to an attachment when you create the record or you can add attachments later. Provide a value for the following: - **Attachment Name** - **Folder** - When adding files to an attachment, use a list as the source of the files, and specify a value in the following fields: - **File Binary Data** - **File Extension** - **File Name** Update Attachment Updates an Attachment record. When updating an attachment, you can update the attachment properties or add new files from a list. Provide a value for **Attachment ID**. Get Attachments Returns a list of Attachment records. To filter the list, provide a value for **Attachment ID**, **Attachment Name**, or **Folder Name**. To return the entire list, leave the fields blank. Create Attachment Folder Creates a new folder for attachments. Provide a value for **Name**. Get Attachment Folders Returns a list of attachment folders. To filter the list, provide a value for **Folder Name** to filter. To return the entire list, leave the fields blank. Create Customer Creates a new Customer record. Provide a value for the following: - **Customer ID** - **Primary Contact** - **Print As** Update Customer Update a Customer record. Provide a value for **ID**. Get Customer Returns a list of Customer records. To filter the list, provide a value for **Customer ID** or **Customer Name**. To return the entire list, leave the fields blank. Delete Customer Deletes a Customer record. Provide a value for **Customer ID**. Create Order Creates a new Order record and returns a value for the **Key** field. Provide a value for the following: - **Order Type** - **Date Created** - **Transaction Currency** - **Base Currency** - **Exchange Rate Type** - In the **Entries** > **Sotransitem (Order line items)** section, provide a value in the following: - **Sotransitem (Order line items) List** - **Item ID** - **Quantity** - **Location ID** Note that the **Location ID** field is determined by the numbers preceding the location description. For example, if the location ID is `100-United States`, then enter `100` in the **Location ID** field. - **Price** - **Unit** - If your order contains inventory type items or a mix of inventory and non-inventory items, provide a value for **Warehouse ID**. Update Order Updates an Order record. Note that when updating or reordering line items for an existing order, the line order can change. For example, if you drag a line item from the number two position to the number three position in the Sage Intacct UI, the line order changes. To avoid synchronizing the wrong Sage Intacct line order item, you must account for possible order line item changes. Prior to executing the **Update Order** action, identify the current **Line Number** and store it in a custom field within Sage Intacct. To delete a line item from an existing order, use the **Delete Order Line Item** action. Provide a value for the following: - **Document ID** Note that the **Document ID** value is the **Key** value returned by the **Create Order** action. - For line itmes to be added to an order, in the **Entries** > Sotransitem (Order line items)\* section, provide a value for the following: - **Sotransitem (Order line items) List** - **Line Number** Note that if no value or a null value is provided for this field, the item is created. If a value is provided, the item is skipped. If the datapill mapped to the **Line Number** field is empty for items to be created and has a value for items to be updated, the items containing values are created and the rest of the items are ignored. - **Item ID** - **Quantity** - **Location ID** Note that the **Location ID** field is determined by the numbers preceding the location description. For example, if the location ID is `100-United States` then enter `100` in the **Location ID** field. - **Price** - **Unit** - If your order contains inventory type items or a mix of inventory and non-inventory items, provide a value for **Warehouse ID**. - For line itmes to be updated in an order, in the **Entries** > **Updatesotransitem (Order line items)** section, provide a value for the following: - **Updatesotransitem (Order line items) List** - **Line Number** Note that if no value or a null value is provided for this field, the item is updated. If a value is provided, the item is skipped. If the datapill mapped to the **Line Number** field is empty for items to be updated and has a value for items to be created, the items containing values are updated and the rest of the items are ignored. - **Item ID** - **Quantity** - **Location ID** Note that the **Location ID** field is determined by the numbers preceding the location description. For example, if the location ID is `100-United States` then enter `100` in the **Location ID** field. - **Price** - **Unit** - If your order contains inventory type items or a mix of inventory and non-inventory items, provide a value for **Warehouse ID**. Delete Order Line Item Deletes an order line item. Provide a value for **Line Item ID (Record Number)**. Get Order Returns a list of Order records. To filter the list, provide a value for **Order ID**, **Customer ID** or **Document ID**. To return the entire list, leave the fields blank. Note that the **Document ID** value is the **Key** value returned by the **Create Order** action. Delete Order Deletes an Order record. Provide a value for **Order ID**. Create Product Create a new product record and returns the **Item ID** and **Record Number**. Provide a value for the following: - **Item ID** - **Name** - **Item Type** Update Product Updates a Product record. Provide a value for **Item ID**. Get Products Returns a list of Product records. To filter the list, provide a value for **Item ID**, **Name**, or **Item Type**. To return the entire list, leave the fields blank. Delete Product Deletes a Product record. Provide a value for **Product ID**. Create Price List Creates a new Price List record. Provide a value for the following: - **Type** - **Price List Name** Update Price List Updates a Price List record. Provide a value for the following: - **Type** - **Price List Name** Get Price Lists Returns a list of Price List records. To filter the list, provide a value for **Type**. To return the entire list, leave the fields blank. Delete Price List Deletes a Price List record. Provide a value for **Price List ID**. Create Price List Entry Creates a new Price List Entry record for a price list and returns the **Key** value. Provide a value for the following: - **Price List ID** - **Start Date** - **End Date** - **Fixed** - **Value** - **Value Type** Update Price List Entry Updates a Price List Entry record. Provide a value for **Record Number**. Get Price List Entries Returns a list of Price List Entry records. To filter the list, provide a value for **Entry ID**, **Price List ID**, or **Item ID**. To return the entire list, leave the fields blank. Delete Price List Entry Deletes a Price List Entry record. Provide a value for the **Price List Entry ID**. ## Custom Fields If defined in the Sage Intacct instance, Sage Intacct Connector for Composer supports adding custom fields. For details on adding Sage Intacct custom fields, see the [Sage Intacct documentation](https://developer.intacct.com/customization-services/#custom-fields). ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Salesforce Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Salesforce as a data source (take new Salesforce records and copy them to a Google Sheet, for example) or a data target (take a new employee in Workday and create a contact in Salesforce). Some details of how to work with data in a flow are specific to the data source or data target. The details also depend on the trigger or actions you choose. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Username and password The username and password that you used to log in to Salesforce. You’ll need to create a connection even if the data source is the same Salesforce org where you operate Composer. However, Composer won’t ask for your password again. Instead, it displays an authentication approval dialog. URL The URL that you used to log in to Salesforce, for example, `myOrg.salesforce.com`. ### Salesforce Connected App Limits Salesforce allows each user to grant access to no more than five connected apps at a time. Because of this limit, if you create more than five Composer connections to the same Salesforce org, Salesforce revokes tokens from the oldest to the most recently created, without notice, until the number of authorized tokens returns to five. If possible, create only one connection per user per Salesforce org to avoid this issue. For more about Salesforce connected apps and authorization, see the [Salesforce documentation](https://help.salesforce.com/s/articleView?id=xcloud.remoteaccess_request_manage.htm&type=5). ### Relaxed IP Restrictions If your org has IP restrictions set, errors that reference IP or OAuth failures may occur. Relax the IP restrictions to resolve this error. To relax IP restrictions on a connection to Salesforce: 1. Log into the Salesforce org. You must be a Salesforce admin in that org. 2. Navigate to **Setup > Connected Apps OAuth Usage**. 3. Find **MuleSoft Platform** in the list with the description **MuleSoft OCS app for KPROD**, and click **Install**. 4. Click **Install** on the authorization dialog. This makes the connected app (the connection you created) available so that you can relax the IP restrictions. It doesn’t reinstall the Composer app. 5. Click **Edit Policies**. 6. Change IP Relaxation to **Relax IP Restrictions** and then save your change. IP restrictions are now relaxed for the connection. ### Change a Connection To change a connection: 1. Open the flow. 2. Click the change icon in the trigger or every action that connects to a sandbox: ![A button that says Change the Connection](/mulesoft/current/en-us/composer/_images/images/change-connection.png) 3. Choose a new connection and save your changes. ### Resolve an Invalid Salesforce Connection A Salesforce connection can become invalid when Salesforce certificates are renewed or generated, or when an access token expires and Composer can’t refresh it. When the connection is invalid, flows that use it fail to activate, with errors such as `AccessToken expired` or `500 Internal Server Error`. > [!NOTE] Before you change the connection, record the field mappings in each flow. For example, > take screenshots so you can re-create them. 1. Create a Salesforce connection. Use a dedicated service account or Salesforce admin account so the connection doesn’t depend on an individual user’s access. 2. Open each flow that uses the old connection. 3. In the trigger and every action that uses the old connection, select the change icon, and then select the new connection. See [Change a Connection](#change-a-connection). 4. Add the field mappings again. Changing the connection removes the existing mappings from the trigger and actions, and Composer doesn’t restore them. 5. Save the flow, and then activate it again. ### Salesforce Sandbox and Production Orgs You can connect to Salesforce sandbox and production orgs. To protect your production org: 1. Connect to a sandbox org when you build and test a flow. 2. After testing is complete, connect to a production org, test the flow with the new connection, and then activate the flow. Remember to change the connection from sandbox to production in every trigger and action that uses the sandbox connection. ### Null Values By default, Composer ignores fields with empty (_null_) values. To change this behavior to clear the existing value of the field when the field value is null, on the card, click the gear, and then select `Clear on Null Values`. ## Transfer Binary Files You can transfer binary files as field inputs using data pills from within your Composer flow. For example, when keeping files in sync between Salesforce instances, you can download binary file content from one instance and later upload that same file content to another instance. The following Salesforce objects support binary transfers: - `Content` - `Version Document` - `Attachment` The recommended file size limit per transfer is 25MB and files transferred across systems cannot be truncated. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New record Checks for a new record every 15 seconds. New or updated record Checks for new or updated records of the specified object type every 15 seconds. Deleted record Checks for soft-deleted records. Soft-deleted records are stored in Salesforce for approximately 15 days. Records are typically stored for approximately 15 days before being hard-deleted and irretrievable. \* You can’t modify the soft-delete timestamp. ### Trigger Conditions You can add trigger conditions to specify which conditions should trigger a workflow, for example, you can restrict a workflow to trigger only when a specific field meets the conditions you specify. To add a trigger condition: 1. Select a trigger. 2. In the **Trigger Conditions** section, click on the **Criteria** dropdown menu and select either **All Conditions Must Be Met (AND)** or **Any Condition Must Be Met (OR)**. 3. Specify your conditions for specific fields. To add more trigger conditions, click **Add Condition**. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create new record Create a standard or custom record. While creating a new record, any rules associated with the record are triggered based on the user’s role. Update record Update any standard or custom record as specified by an external ID. Get records Return all the records that match specified criteria: ![Get Records example action configuration for Salesforce Connector](/mulesoft/current/en-us/composer/_images/images/get-records-salesforce.png) - You can choose which fields the action fetches in the **Result fields** section. - You can add one or more conditions to specify which types of records should be returned in the **Criteria** section. For example, you could specify that the last name begin with "B." - You can control the sort order of the returned records in the **Sort records** section. Records can be sorted in ascending or descending order of a field that you specify. - You can select **All records** in the **How Many Records to Retrieve** section to retrieve a list of records that match your criteria. The **All records** option is selected by default. If you want to access a single record from the list, you must add a [For Each loop](https://docs.mulesoft.com/composer/ms_composer_flows#create-and-test-a-for-each-loop) to your flow. - If you have filtered your search with a unique identifier, you can select **Only the first record** in the **How Many Records to Retrieve** section to return a single record. Returning a single record will change the output of the search from a _list_ to a _single_ record. The **Get records** action searches for all records and returns only the first record in the list. If you previously selected **All records** and then changed your selection to **Only the first record**, data pills in your existing flow could be invalidated. When **Get Records** is a step in your flow, if Field-Level Encryption is enabled and you’re trying to filter on an encrypted field, only the following string operators are supported: `equals`, `not equals`, or empty. Field-Level Encryption doesn’t support `contains`, `starts with`, or `ends with`. For more information on Field-Level Encryption, see the [Salesforce documentation](https://help.salesforce.com/s/articleView?id=mktg.mc_overview_field_level_encryption_limitiations.htm&type=5). Create or update record Update any standard or custom record as specified by record ID. If the record ID isn’t found, create the record. Delete record Delete a record specified by its object type and record ID. Upload file Adds a file to a folder in Salesforce. Download file Returns the binary contents of the specified file. ## Set Error from Action Preferences If an error occurs within your flow, the error details appear on the **Run History** page. The **Run History** page displays the date and time on which the error occurred, an explanation of the error, and the location within the flow where the error occurred. Using this information, you can troubleshoot issues within your flow. However, you can proactively set preferences in advance for handling errors that may occur. To set an error from action preference: 1. Select an action. 2. In the **If an error occurs section**, select one of the following: 1. **Stop Flow** 2. **Continue to next step** 3. **Create an error branch** 4. **Continue to another branch** The error from action preference is set. If an error occurs, the selected preference is enacted in the flow. ## Objects All standard and custom Salesforce objects are available. Some products in Marketing Cloud and Commerce Cloud use data that is not stored in Salesforce records and therefore is not available with a Salesforce connection. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Salesforce Marketing Cloud Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Salesforce Marketing Cloud is a marketing platform that supports capabilities such as real-time customer engagement, email and marketing automation, social media engagement, mobile (SMS) messaging and push notifications, and customer marketing analytics. To use the Salesforce Marketing Cloud Connector, you must first create an API Integration package and set permissions for email and SMS communication. ## Create an API Integration Package and Set Permissions To create a package and set the permissions: 1. In Composer, click the gear icon in the upper right corner. The **Setup** page appears. 2. On the left navigation pane, under **Platform Tools**, click **Apps** > **Packaging** > **Installed Packages**. The **Installed Packages** page appears. 3. In the upper-right corner of the **Installed Packages** page, click **New**. The **Package Details** window appears. 4. In the **Package Details** window, complete the following fields: 1. **Name**: Enter a unique name for the new package. 2. **Description**: Enter a description of the package. 5. Click **Save**. The **Summary** page appears displaying the details of the new package. 6. In the **Summary** page, click **Add Component**. The **Add Component** window appears. 7. In the **Add Component** window, select **API Integration** > **Server-to-Server**. The **Set Server-to-Server** section appears. 8. In the **Set Server-to-Server** section, under **Channels**, select the checkboxes next to the following: 1. In the **Email** column: **Read**, **Write**, **Send** 2. In the **SMS** column: **Read**, **Write**, **Send** 9. Click **Save**. The API Integration package is created and the permissions for email and SMS communication are set. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. For more information on how to create an API integration in Installed Packages, refer to [Server-to-Server Integrations with Client Credentials Grant Type](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/integration-s2s-client-credentials.html). This system requires the following credential information for its connections: Connection Display Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Client ID Enter the Client ID from the Installed Package. Client Secret Enter the Client Secret from the Installed Package. Authentication URI Enter the Authentication Base URI from the Installed Package. Scopes (Optional) Enter the scopes MuleSoft Composer should have access to. This is helpful if your package has access to a larger number of scopes than are needed here. Minimum scope required: offline, email\_send, sms\_send, list\_and\_subscribers\_read ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Send email Sends an email to the customer using a specific template. Provide a value for the following fields: - Email Definition - Contact Key - Email Send SMS Sends an SMS to the customer using a specific template. Provide a value for the following fields: - SMS Definition - Contact Key - Recipient’s Phone Number ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the Salesforce Marketing Cloud record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # SAP S/4HANA Cloud Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt SAP S/4HANA is an enterprise resource planning (ERP) software used for application and IT infrastructure security, asset operation and maintenance, business planning and consolidation, logistics and order fulfillment, and more. This connector is based on the SAP S/4HANA OData API. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Display Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Base URL The URL for your SAP S/4HANA instance, for example, `https://{YourInstance}-api.s4hana.cloud.sap`. Username The username that you use to log in to SAP S/4HANA. Password The password that you use to log in to SAP S/4HANA. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: On New or Updated Entity Triggers when a new object of the record subtype is created or updated. Provide a value for the following fields: - **Service** - **Entity type** ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create Entity Creates a record of the specified record type. Provide a value for the following fields: - **Service** - **Entity type** - **Entity** Get Entity Retrieves a record of the specified record type. Provide a value for the following fields: - **Service** - **Entity type** - **Entity key** Update Entity Updates a record of the specified record type. Provide a value for the following fields: - **Service** - **Entity type** - **Entity** Delete Entity Deletes a record of the specified record type. Provide a value for the following fields: - **Service** - **Entity type** - **Entity key** ## Custom Fields Using MuleSoft Composer, you can access custom field values for actions and triggers that you set in the SAP S/4HANA record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Scheduling, Polling, or Innvoking a Flow > For the full documentation index, see: https://docs.mulesoft.com/llms.txt When managing how your flow operates, you can: - [Schedule a flow](#schedule-a-flow). - [Poll a flow](#poll-a-flow). - [Invoke a flow](#invoke-a-flow). Additionally, all users can [view or manage all flows within your org.](#open-access-for-flows) ## Schedule a Flow If you don’t choose a connection, you can schedule a flow to start at regular intervals. To create a flow control: 1. In a new flow, from the **What Should Start This Flow?** dialog, look in the Flow Control section and click **Scheduler**. 2. Select a time interval, from 15 minutes to 30 days. For intervals of a day or more, the scheduler might not run at the same time within each interval. ![A dropdown menu with a list of time intervals, including 15 minutes, 30 minutes, 45 minutes, 1 hour, 5 hours, and 1 day](/mulesoft/current/en-us/composer/_images/images/connection-scheduler.png) 3. Click **Save**. After creating the trigger, add one or more actions to the flow. To apply logic to an action, prepend it with an [If/Else block](https://docs.mulesoft.com/composer/ms_composer_using_actions_in_a_flow#create-an-if-else-block) or [For Each loop](https://docs.mulesoft.com/composer/ms_composer_using_actions_in_a_flow#create-and-test-a-for-each-loop). ## Poll a Flow This feature enables Composer to check the status of a flow for changes every 10 minutes. After polling the flow, the polling trigger starts processing changes. This functionality is useful for retrieving results that take a long time to finish and are not suitable for synchronous consumption. ## Invoke a Flow You can invoke a Composer flow from external systems, such as Flow Builder, Flow Orchestration, another Composer flow, an Apex callout, or a cURL command, to enable deeper interoperability and integrated capabilities across Salesforce. For more information, refer to [Invoke a Composer Flow](https://docs.mulesoft.com/composer/ms_composer_invocable_flows). ## Open Access for Flows All users can view or manage all flows within your org. This feature is enabled by default for new customers and disabled by default for existing customers. To disable this feature at the org level, contact Composer Support. ### Limitations - To filter by owner of the flow, you must use the **Flow Owner** field and not the **Owner** field. - When filtering using the **Flow Owner** field, you can use only the **starts with**, **equals**, and **contains** operators. The **starts with**, **equals**, and **contains** operators all mimic the functionality of the **contains** operator. - In orgs of existing customers, **Flow Owner** is not visible by default in the list view on the **Composer Flows** tab. New customers, however, can see **Flow Owner** by default in the list view on the **Composer Flows** tab. - To add **Flow Owner** to the **Recently viewed** list: 1. From the **Composer Flows** tab, select **Recently viewed**. 2. Go to **Setup > Search Layouts > Composer Flow > Default Layout**. 3. Add **Flow Owner**. - To add **Flow Owner** to **All** (or any other view list): 1. From the **Composer Flows** tab, select **All**. 2. Go to **List View Controls > Select Fields to Display**. 3. Move **Flow Owner** from **Available Fields** to **Visible Fields**. - Bulk ownership transfer or changing ownership to a user other than yourself is not supported. ### View Flows You can view all flows within your org and view flow details, such as the status to see if a flow is active or inactive, the last modified date to see flow changes (not activation or deactivation), the flow owner, or the run history. To view all flows within your org: 1. Go to the **Composer Flows** tab. You can now view all flows within your org and view flow details, such as **Flow Name**, **Status**, and **Last Modified Date**. ### Manage Flows You can manage all flows within your org. You can activate or deactivate all flows within your org, delete all flows within your org, edit all flows within your org, or change ownership of error email notification flows within your org. To manage all flows within your org: 1. From the **Composer Flows** tab, select a flow. 2. Click on the desired button, for example, click **Delete** to delete a flow or click **Transfer ownership** to change flow ownership (for error email notification flows only). When automating complex processes, be aware that flows with many steps can encounter numerous issues. To enhance automation efficiency, promote reusability, and ensure clarity for the entire organization, we recommend breaking down the process into logical sub-flows and invoking these sub-flows from a parent flow. As a best practice, when logical sub-flows are feasible, [invoke a Composer flow from another Composer flow](https://docs.mulesoft.com/composer/ms_composer_invocable_flows#invoke-a-composer-flow-from-another-composer-flow) to create and integrate sub-flows. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # ServiceNow Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt ServiceNow is an IT Service Management (ITSM) system that helps IT organizations manage service requests and incidents reported by employees as well as service requests from partners, vendors, and customers. > [!NOTE] To view sample data in ServiceNow Connector, you must either: > > - Go to ServiceNow and then go to **System Properties** > **Web Services**. Select the **Yes** > checkbox under the > `This property sets the elementFormDefault attribute of the embedded XML schema to the value of unqualified, if set to true. This attribute indicates whether or not locally declared elements must be qualified by the target namespace in an instance document. If the value of this attribute is 'unqualified', then locally declared elements should not be qualified by the target namespace. If the value of this attribute is 'qualified', then locally declared elements must be qualified by the target namespace. For compatibility with Clients generated from WSDL (.NET Web Reference, Axis2 stub, webMethods, ect.), set this value to false. This value defaults to true.` > statement. Click **Save**. > > - Go to ServiceNow and in the navigation filter, enter `sys_properties.list`. Find the > `glide.wsdl.schema.UnqualifiedElementFormDefault` property and set it to `true`. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Only users with the ServiceNow `soap_admin` role can create connections. For more information, see the [ServiceNow documentation](https://www.servicenow.com/community/itsm-forum/getting-error-quot-insufficient-rights-for-creating-new-records/m-p/704152). Instance URL The URL or ID of your ServiceNow instance. Username The username that you use to log in to ServiceNow. Password The password that you use to log in to ServiceNow. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New or Updated Record Checks for new or updated records in the ServiceNow `record_type` table. Provide a value for **Table name**. Note that **ServiceNow Time Zone** must be set to the same time zone as your ServiceNow instance. > [!NOTE] To view custom or extended parent tables in ServiceNow Connector, select the **Allow > access to this table via web services** and **Allow configuration** options in the table > definition. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Search Record Searches for an existing record using a query string that specifies record type criteria. Provide a value for the following fields: - **Table name** - **Query** If the value in the **Table name** field is `sysparm_no_count`, then this value is set to `True` by default. For more information, see the [ServiceNow documentation](https://developer.servicenow.com/dev.do#!/reference/api/orlando/rest/c_TableAPI#r_TableAPI-GET). Create Record Creates a new entry of the selected record type table in ServiceNow. Provide a value for **Table name**. Update Record Updates an existing entry of the selected record type table in ServiceNow. Provide a value in the following fields: - **Table name** - **Sys ID** > [!NOTE] To view custom or extended parent tables in ServiceNow Connector, select the **Allow > access to this table via web services** and **Allow configuration** options in the table > definition. ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the ServiceNow record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Slack Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Slack as a data source or target. For example, you can send a Slack message when a Salesforce opportunity is won. Some details of how to work with data in a flow are specific to this system, and to the actions you choose. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Workspace Name The Slack workspace name, for example, `my-workspace.slack.com` Username and password The username and password that you use to log in to Slack ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: On New Message When this trigger fires, new messages are available for subsequent steps. To use this trigger, you must add the Composer app to the specific channel you want to use. For more information, see the [Slack documentation](https://slack.com/help/articles/202035138-Add-apps-to-your-Slack-workspace). ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Send a direct message to a user To post a direct message to a specified user, supply the following information: - **User**: The ID of the user to receive the message. - **Message**: The message to be sent. You can choose from several options: - Enter text. - Select a data pill. - Select **Custom Expression** to add any combination of text and data pills. - **Bot Name**: By default, the sender of Slack messages generated by an action is **MuleSoft Composer**. You can supply a different name here for the messages sent by this action. - **Bot Icon URL**: By default, the sender of Slack messages generated by an action is **MuleSoft Composer**, and includes the MuleSoft logo in icon form. You can supply a different icon for the messages sent by this action. Specify an icon URL whose access is not restricted. Post message to channel Post a new message to a specific private or public channel that you select. To post a message to a private channel, you must first add the MuleSoft Platform app to that private channel. - **Channel Name**: A channel in the Slack workspace that you select from a drop-down list of the existing channels. - **Message**: The message to be sent. You can choose from several options: - Enter text. - Select a data pill. - Select **Custom Expression** to add any combination of text and data pills. - **Bot Name**: By default, the sender of Slack messages generated by an action is **MuleSoft Composer**. You can supply a different name for the messages sent by this action. - **Bot Icon URL**: By default, the sender of Slack messages generated by an action is **MuleSoft Composer**, and includes the MuleSoft logo in icon form. You can supply a different icon for the messages sent by this action. Specify an icon URL whose access is not restricted. Get user by email Find a Slack user by entering their email address into the **Email** field. If you want to fetch the user’s ID dynamically, you can insert this action, which fetches the Slack user by an email address from another system. Use the **ID** data pill returned by this action to specify the user who should receive the message. Add users to channel Invites users to a channel. This action requires a new connection. Provide a value for the following fields: - **Channel Name**: A channel in the Slack workspace that you select from a drop-down list of the existing channels. - **User IDs**: IDs of the users to add to a channel. Create channel Creates a public or private channel-based conversation. This action requires a new connection. Provide a value for the following fields: - **Name**: The name of the channel to create. - **Is Private**: Determines whether the channel to create is private or public. - **Team Id**: The encoded ID of the team in which to create the channel. This ID is required if the org token is used. Send direct message to multiple users Sends a direct message to a multi-person direct message channel. Provide a value for the following fields: - **Channel Name**: A channel in the Slack workspace that you select from a drop-down list of the existing channels. - **Attachments**: At least one attachment for the content of the message. - **Blocks**: At least one block for the content of the message. - **Text**: At least one text argument for the content of the message. - **Icon Emoji**: The emoji to use as the icon for the message. Overrides **Icon Url**. - **Icon Url**: The URL to an image to use as the icon for the message. - **Link Names**: Find and link user groups. - **Metadata**: JSON object presented as a URL-encoded string. - **Mrkdwn**: Disable Slack markup parsing by setting this field to `false`. - **Parse**: Change how messages are parsed. - **Reply broadcast**: Indicates whether the reply is visible to everyone in the channel or conversation. Used in conjunction with **Thread ts**. - **Thread ts**: Provide another message’s ts value to make this message a reply. Avoid using a reply’s ts value and use its parent’s ts value instead. - **Unfurl links**: Enable the unfurling of primarily text-based content by setting this field to `true`. - **Unfurl media**: Enable the unfurling of media content by setting this field to `true`. - **Username**: Set your bot’s username. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Snowflake Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Snowflake is a fully managed, cloud-based data warehouse solution that operates under a Software as a Service (SaaS) business model. This allows clients to store data and run analytics without the need for an on-premise solution. For more information about privileges for triggers and actions, refer to [Overview of Access Control](https://docs.snowflake.com/en/user-guide/security-access-control-overview). ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Username and password The username and password that you used to log in to Snowflake. Account Name The account name that is provided when registering for the Snowflake account. The account name is in the `-` format. Warehouse The name of the Snowflake warehouse to use. Database The Snowflake database to which you want to connect. Schema The Snowflake database schema to use. ## Data Types The following data types are supported by Snowflake Connector: - INT - NUMBER - DECIMAL - BIGINT - TINYINT - NUMERIC - INTEGER - BYTEINT - FLOAT - FLOAT4 - FLOAT8 - DOUBLE - REAL - VARCHAR - CHAR - CHARACTER - STRING - TEXT - BOOLEAN - DATE - DATETIME - TIMESTAMP - TIMESTAMP\_NTZ ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: On New Row Returns all new rows of a table based on the highest watermark value every 15 seconds. If the watermark value of a new row is lower than the highest watermark value, the new row is discarded. If the watermark value of a new row is higher than the highest watermark value, the new row is picked up and the watermark is set to the new highest value. If the flow is deactivated and reactivated manually, the watermark resets to the start time of the flow. If a start time is not specified in the flow, Composer uses the time the flow is activated as the timestamp. Provide a value for the following fields: - **Table**: Note that this trigger supports views within the **Table** field. - **Created date column**: The following column data types are available for this field: - DATE - DATETIME - TIMESTAMP - TIMESTAMP\_NTZ On New Or Updated Row Returns all new or updated rows of a table based on the highest watermark value between **Created date column** and **Last modified date column** every 15 seconds. If the watermark value of a new or updated row is lower than the highest watermark value, the new or updated row is discarded. If the watermark value of a new or updated row is higher than the highest watermark value, the new or updated row is picked up and the watermark is set to the new highest value. If the flow is deactivated and reactivated manually, the watermark resets to the start time of the flow. If a start time is not specified in the flow, Composer uses the time the flow is activated as the timestamp. Provide a value for the following fields: - **Table**: Note that this trigger supports views within the **Table** field. - **Created date column**: The following column data types are available for this field: - DATE - DATETIME - TIMESTAMP - TIMESTAMP\_NTZ - **Last modified date column**: The following column data types are available for this field: - DATE - DATETIME - TIMESTAMP - TIMESTAMP\_NTZ ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Insert Rows Updates a table by inserting one or more rows into the table. Provide a value for **Query**. Update Rows Updates a set of rows. Provide a value for **Query**. Delete Rows Deletes a set of rows. Provide a value for **Query**. Select Rows Retrieves a set of rows. Provide a value for **Query**. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Stripe Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Online payment processing platforms, like Stripe, are used by a growing number of businesses. Stripe enables businesses of all sizes to process payments through APIs by keeping customers and payment information synched. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. API key The value in this field maps to the `Authorization` field in the specialist connector and functions as a username in Stripe. Authentication to the API is performed via HTTP Basic Authentication. Your API key is your username and a password is not required. You can find your API key in your [Stripe Dashboard](https://docs.stripe.com/api/authentication). The Stripe API: - Uses API keys to authenticate requests. - Supplies test mode keys that have the prefix `sk_test_` and live mode secret keys that have the prefix `sk_live_`. - Allows users to use restricted API keys for granular permissions. - Ensures that all API requests are made via HTTPS. Stripe Connect supports OAuth authentication, but Stripe does not. For more information about OAuth authentication in Stripe, see the [Stripe documentation](https://docs.stripe.com/connect/oauth-reference). ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New charge Checks for a new charge to a payment source. New refund Executes when a new refund is created. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create charge Create a new charge. When creating a new charge, note that: - In the `Amount` field, the value is an integer. For instance, 1.00 is 100. - The following fields require values: - Either the `Source` or the `Customer` field - `Customer ID` Note that best practice dictates that the value in the Customer ID field should come from an existing account in Stripe. For example, `cus_JQ1BWAcXfKuswb`. - Some shipping fields are required if any shipping fields are present. For more information on the **Create Charge** action in Stripe, see the [Stripe documentation](https://docs.stripe.com/api/charges/create). Create customer Create a new customer. When creating a new customer, the `Phone` field is the customer’s phone number and not the shipping phone number. Find customer Finds an existing customer by `Customer ID`. Create product Creates a new product object. The following field is required: **Name**. ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the Stripe record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Supported Data Types and Formulas > For the full documentation index, see: https://docs.mulesoft.com/llms.txt In MuleSoft Composer, the following data types and formulas are supported: - [Data Types](#data-types) - [String Functions](#string-functions) - [Number Functions](#number-functions) - [Date Functions](#date-functions) - [List Functions](#list-functions) ## Data Types The value that a Composer field can accept for a value is a _data type_. In Composer, the following data types are available:
Data TypeDefinition

Boolean

Evaluates to true or false.

Date

Stores a year, month, and day as yyyy-MM-dd.

DateTime

Stores a date and time within a time zone relative to Coordinated Universal Time (UTC). Composer does not store the user’s local timezone; therefore, when a DateTime value is entered in this field, Composer assumes that the DateTime value entered is in UTC format. A time zone must include either the symbol + in the time value or the symbol - in the date value. For example, 12:30 p.m. on June 1, 2019, in the Macau time zone is represented as 2019-06-01T12:30:00+08:00. Note that when using the today() function, the value for Date is returned in UTC. Additionally, if the date is not entered in UTC, Composer will automatically convert the date to UTC format which may or may not be accurate for the user’s local time zone which could affect the resulting logic.

List<Object>

Returns a list of objects, for example, the output of the Get Records action.

List<Primitive>

Returns a list containing primitive data types. The following item data types are available: Boolean, Date, DateTime, Integer, Number, and String.

Number

Stores either a floating-point number in the range of 1.40129846432481707e-45 to 3.40282346638528860e+38 or an integer.

Object

Refers to a composite data type that can contain other data types as properties (boolean, date, number, and so on).

String

Stores text, numbers that are not number data types, or a combination of both, for example, 94u0sfjlk*(f!`lkkjd, 18005555555, or Fred.

## String Functions The **Custom Expression Editor** supports the following `string` formulas and operators:
Function NameDescriptionExampleParameter DefinitionInput Data Type ParametersOutput Data Type

lower

Returns the provided string in lowercase characters.

lower(COMPOSER) = composer

NA

text: String

String

upper

Returns the provided string in uppercase characters.

upper(composer) = COMPOSER

NA

text: String

String

capitalize

Capitalizes the first letter of each word in a string. This also removes underscores between words and puts a space before each capitalized word.

capitalize(name) = Name

capitalize(firstName) = First Name

capitalize(customer_first_name) = Customer First Name

NA

text: String

String

trim

Removes any blank spaces from the beginning and end of a string.

trim(<long example text>) = this example long text

NA

text: String

String

first

Returns the specified number of characters from the beginning of a string. If the number is equal to or greater than the number of characters in the string, the function returns the entire string.

first(Hello Composer!, 5) = Hello

NA

text: String

numCharacters: Number

String

last

Returns the specified number of characters from the end of a string.

last(Hello Composer!, 9) = Composer!

NA

text: String

numCharacters: Number

String

substitute

Replaces all substrings that match a literal search string with a specified replacement string. Replacement proceeds from the beginning of the string to the end. For example, the result of replacing aa with b in the string aaa is ba, rather than ab.

substitute(Composer, o, O) = COmpOser

substitute(Composer, a, Example) = Composer

NA

text: String

target: String

replacement: String

String

fromStringToBoolean

Transforms a string input value into a boolean value.

fromStringToBoolean(true) = true

fromStringToBoolean(FALSE) = false

fromStringToBoolean(TrUe) = true

NA

text: String

Boolean

fromStringToDate

Transforms a string input value into a date value. Accepts a format and locale. The format parameter represents the format of the input string.

The default format is uuuu-MM-dd and the default locale is en-US; however, these defaults can be modified.

fromStringToDate(2021-03-15, uuuu-MM-dd, en-US) = 2021-03-15

fromStringToDate(2021/15/03, uuuu/dd/MM, en-US) = 2021-03-15

Format: The format parameter represents the format of the input string. This parameter accepts Java character patterns based on ISO-8601. A Date value, such as 2011-12-03, has the format uuuu-MM-dd.

Locale: Optional ISO 3166 country code to use, such as en-US, AR, or ES.

text: String

format: String

locale: String

Date

fromStringToDateTime

Transforms a string input value into a dateTime value. Accepts a format and locale. The format parameter represents the format of the input string. The default format is uuuu-MM-dd’T’HH:mm:ssz and the default locale is en-US; however, these defaults can be modified.

fromStringToDateTime(2021-03-15T23:57:59Z,uuuu-MM-dd’T’HH:mm:ssz,US) = 2021-03-15T23:57:59Z

fromStringToDateTime(2021-03-15 23:57:59Z,uuuu-MM-dd HH:mm:ssz,en-US) = 2021-03-15T23:57:59Z

Format: The format parameter represents the format of the input string. This parameter accepts Java character patterns based on ISO-8601. A DateTime value, such as 2011-12-03T10:15:30.000000+01:00, has the format uuuu-MM-dd HH:mm:ssz.

Locale: Optional ISO 3166 country code to use, such as en-US, AR, or ES.

text: String

format: String
locale: String

DateTime

fromStringToNumber

Transforms a string input value into a number value.

fromStringToNumber(1) = 1

fromStringToNumber(0.05) = 0.05

NA

text: String

Number

emptyString

Returns an empty string.

You can use the emptyString function wherever an empty string is needed, including as an input parameter in other functions.

-

-

String

substring

Returns a substring that spans from the character at the specified from index to the last character before the until index.

substring(Hello Composer, 6, 14) = Composer

N/A

text: String from: Number until: Number

String

It is important to note that in a `string` field, you can use `number` expressions selected from the operator list; however, the expressions must be enclosed within parentheses. For example, you can enter `abc(9+9)` where the `+` is selected from the operator list. This string renders as `abc18`. ## Number Functions In the **Custom Expression Editor**, a mathematical operator (+,-,\*, or /) selected from the operator list is different from an operator typed and resolved as a string character. For example, the entry `9+9` is considered a string rather than `18`. To use mathematical operators, select them from the operator list or type and select them using the Enter key, Tab key, or mouse with typeahead. The **Custom Expression Editor** supports the following `number` formulas and operators:
Function NameDescriptionExampleParameter DefinitionInput Data Type ParametersOutput Data Type

round

Rounds a number up or down to the nearest whole number.

round(1.2) = 1

round(4.6) = 5

round(3.5) = 4

NA

number: Number

Number

ceil

Rounds a number up to the nearest whole number.

ceil(1.2) = 2

ceil(3) = 3

NA

number: Number

Number

floor

Rounds a number down to the nearest whole number.

floor(2.2) = 2

floor(3) = 3

NA

number: Number

Number

abs

Returns the absolute value of a number.

abs(-3.4) = 3.4

abs(2) = 2

NA

number: Number

Number

fromNumberToString

Transforms a number value (whole or decimal) into a string value.

fromNumberToString(1) = 1

fromNumberToString(0.05) = 0.05

NA

number: Number

String

fromNumberToDateTime

Transforms a number input value into a dateTime value. Uses milliseconds or seconds as the unit. The default unit is seconds.

fromDateTimeToNumber(1443743879, seconds) = 2015-10-01T23:57:59Z

fromDateTimeToNumber(1443743879000, milliseconds) = 2015-10-01T23:57:59Z

Unit: The unit of time to use for the conversion: "milliseconds" or "seconds". The default unit is "seconds."

unit: String

DateTime

## Date Functions In the **Custom Expression Editor**, `date` and `dateTime` data pills can only be used as inputs. You cannot enter the dates manually. Note that Composer does not store the user’s local timezone; therefore, when a value is entered in a `DateTime` field, Composer assumes that the `DateTime` value entered is in UTC format. A time zone must include either the symbol `+` in the time value or the symbol `-` in the date value. For example, 12:30 p.m. on June 1, 2019, in the Macau time zone is represented as `2019-06-01T12:30:00+08:00`. Additionally, if the date is _not_ entered in UTC, Composer will automatically convert the date to UTC format which may or may not be accurate for the user’s local time zone which could affect the resulting logic. The **Custom Expression Editor** supports the following `date` and `dateTime` formulas and operators:
Function NameDescriptionExampleParameter DefinitionInput Data Type ParametersOutput Data Type

today

Returns the date for today as a Date type.

today() = 2021-03-15

NA

NA

Date

now

Returns a DateTime value for the current date and time.

now() = 2021-03-15T18:23:20

NA

NA

DateTime

addDays

Creates and returns a Date value incremented or decremented by the specified number of days.

addDays(today(), 3) = 2021-03-18

addDays(2021-03-15, -4) = 2021-03-11

NA

date: Date

numDays: number

Date

addDays

Creates and returns a DateTime value incremented or decremented by the specified number of days.

addDays(now(), 3) = 2021-03-18T18:23:20

addDays(2021-03-15T18:23:20, 3) = 2021-03-18T18:23:20

NA

dateTime: DateTime

numDays: number

DateTime

addMonths

Creates and returns a Date value incremented or decremented by the specified number of months.

addMonths(today(), 3) = 2021-06-15

addMonths(2021-03-15, -4) = 2020-12-15

NA

date: Date

numMonths: number

Date

addMonths

Creates and returns a DateTime value incremented or decremented by the specified number of months.

addMonths(now(), 3) = 2021-06-15T18:23:20

addMonths(2021-03-15T18:23:20, -4) = 2020-12-15T18:23:20

NA

dateTime: DateTime

numMonths: number

DateTime

addYears

Creates and returns a Date value incremented or decremented by the specified number of years.

addYears(today(), 1) = 2022-03-15

addYears(2021-03-15, -1) = 2020-03-15

NA

date: Date

numYears: number

Date

addYears

Creates and returns a DateTime value incremented or decremented by the specified number of years.

addYears(now(), 3) = 2024-03-15T18:23:20

addYears(2021-03-15T18:23:20, -1) = 2020-03-15T18:23:20

NA

dateTime: DateTime

numYears: number

DateTime

addHours

Creates and returns a DateTime value incremented or decremented by the specified number of hours.

addHours(now(), 1) = 2021-03-15T23:23:20

addHours(2021-03-15T22:23:20, 3) = 2021-03-16T01:23:20

addHours(2021-03-15T22:23:20, -4) = 2021-03-15T18:23:20

NA

dateTime: DateTime

numHours: number

DateTime

addMinutes

Creates and returns a DateTime value incremented or decremented by the specified number of minutes.

addMinutes(now(), 5) = 2021-03-15T18:33:20

addMinutes(2021-03-15T23:45:00,15) = 2021-03-16T00:00:00

addMinutes(2021-03-15T18:23:20, -30) = 2021-03-15T17:53:20

NA

dateTime: DateTime

numMinutes: number

DateTime

addSeconds

Creates and returns a DateTime value incremented or decremented by the specified number of seconds.

addSeconds(now(), 30) = 2021-03-15T18:23:50

addSeconds(2021-03-15T23:45:00,15) = 2021-03-15T23:45:30

addSeconds(2021-03-15T18:23:20, -30) = 2021-03-15T18:22:50

NA

dateTime: DateTime

numSeconds: number

DateTime

beginningOfHour

Returns a new DateTime value that changes the Time value in the input to the beginning of the specified hour. The minutes and seconds in the input change to 00:00.

beginningOfHour(2021-03-15T18:23:20) = 2021-03-15T18:00:00

NA

dateTime: DateTime

DateTime

beginningOfDay

Returns a new DateTime value that changes the Time value in the input to the beginning of the specified day. The hours, minutes, and seconds in the input change to 00:00:00.

beginningOfDay(2021-03-15T18:23:20) = 2021-03-15T00:00:00

NA

dateTime: DateTime

DateTime

beginningOfWeek

Returns a new Date value that changes the Day value from the input to the beginning of the first day of the specified week. The function treats Sunday as the first day of the week.

beginningOfWeek(2021-03-15) = 2021-03-14

beginningOfWeek(today()) = 2021-03-14

NA

date: Date

Date

beginningOfWeek

Returns a new DateTime value that changes the Day and Time values from the input to the beginning of the first day of the specified week. The function treats Sunday as the first day of the week.

beginningOfWeek(2021-03-15T18:23:20) = 2021-03-14T00:00:00

beginningOfWeek(now()) = 2021-03-14T00:00:00

NA

dateTime: DateTime

DateTime

beginningOfMonth

Returns a new Date value that changes the Day value from the input to the first day of the specified month.

beginningOfMonth(2021-11-15) = 2021-11-01

beginningOfMonth(today()) = 2021-03-01

NA

date: Date

Date

beginningOfMonth

Returns a new DateTime value that changes the Day value from the input to the first day of the specified month. The day and time in the input changes to 01T00:00:00.

beginningOfMonth(2021-03-15T18:23:20) = 2021-03-01T00:00:00

beginningOfMonth(now()) = 2021-03-01T00:00:00

NA

dateTime: DateTime

DateTime

beginningOfYear

Returns a new Date value that changes the Month and Day values from the input to the first day of the specified year.

beginningOfYear(2021-11-15) = 2021-01-01

beginningOfYear(today()) = 2021-01-01

NA

date: Date

Date

beginningOfYear

Returns a new DateTime value that changes the Month and Day values from the input to the first day of the specified year. It also sets the Time value to 00:00:00. The month, day, and time in the input changes to 01-01T00:00:00.

beginningOfYear(2021-03-15T18:23:20) = 2021-01-01T00:00:00

beginningOfYear(now()) = 2021-01-01T00:00:00

NA

dateTime: DateTime

DateTime

daysBetween

Returns the number of days between two dates. If the to Date value is earlier than the from Date value, the function returns a negative number equal to the number of days between the two dates.

daysBetween(2020-03-15, 2021-03-15) = 365

NA

from: Date

to: Date

Number

daysBetween

Returns the number of days between two DateTime values. If the to DateTime value is earlier than the from DateTime value, the function returns a negative number equal to the number of days between the two DateTime values.

daysBetween(2020-03-15T18:23:20, 2021-03-15T02:23:20) = 365

NA

from: DateTime

to: DateTime

Number

month

Returns the numerical value of the month in the Date input.

month(2021-03-15) = 3

NA

date: Date

Number

month

Returns the numerical value of the month in the DateTime input.

month(2021-03-15T18:23:20) = 3

NA

dateTime: DateTime

Number

year

Returns the numerical value of the year in the Date input.

year(2021-03-15) = 2021

NA

date: Date

Number

year

Returns the numerical value of the year in the DateTime input.

year(2021-03-15T18:23:20) = 2021

NA

dateTime: DateTime

Number

fromDateToString

Transforms a date input value into a string value. Accepts a format and locale. The format parameter represents the required format of the output string. The default format is uuuu-MM-dd and the default locale is en-US; however, these defaults can be modified.

fromDateToString(2021-03-15, uuuu-dd-MM, en-US) = 2021-15-03

fromDateToString(2021-03-15, uuuu/MM/dd, en-US) = 2021/03/15

fromDateToString(2021-03-15, eeee, dd MMMM, ES) = lunes, 15 marzo

Format: The ISO-8601 formatting to use on the Date. It represents the desired format of the output string. For example, this parameter accepts character patterns based on the Java 8 java.time.format. The default format is uuuu-MM-dd.

Locale: Optional ISO 3166 country code to use, such as en-US, AR, or ES. When you pass a translatable format, such as eeee and MMMM, a locale (such as ES) transforms the corresponding numeric values to a localized string.

date: Date

format: String

locale: String

String

fromDateTimeToString

Transforms a dateTime input value into a string value. Accepts a format and locale. The format parameter represents the desired format of the output string. The default format is uuuu-MM-dd’T’HH:mm:ssz and the default locale is en-US; however, these defaults can be modified.

fromDateTimeToString(2021-03-15T23:57:59Z, uuuu-MM-dd’T’HH:mm:ssz, en-US) = 2021-03-15T23:57:59Z

fromDateTimeToString(2021-03-15T23:57:59Z, MMMM dd, ES) = marzo 15

Format: The ISO-8601 formatting to use on the DateTime. It represents the desired format of the output string. For example, this parameter accepts character patterns based on the Java 8 java.time.format. The default format is uuuu-MM-dd’T’HH:mm:ssz.

Locale: Optional ISO 3166 country code to use, such as en-US, AR, or ES. When you pass a translatable format, such as eeee and MMMM, a locale (such as ES) transforms the corresponding numeric values to a localized string.

dateTime: DateTime

format: String

locale: String

String

fromDateTimeToNumber

Transforms a dateTime input value into a number value. The number is in milliseconds or seconds, depending on the selected unit. The default unit is seconds.

fromDateTimeToNumber(2015-10-01T23:57:59Z, seconds) = 1443743879

fromDateTimeToNumber(2015-10-01T23:57:59Z, milliseconds) = 1443743879000

Unit: The unit of time to use for the conversion: "milliseconds" or "seconds". The default unit is "seconds."

dateTime: DateTime

unit: String

Number

fromDateToDateTime

Transforms a date input value into a dateTime. It does so by adding a time. The default time is T00:00:00Z. All manual entries will be interpreted in UTC.

fromDateToDateTime(2021-03-15, T00:00:00Z) = 2021-03-15T00:00:00Z

fromDateToDateTime(2021-03-15, T23:57:59Z) = 2021-03-15T23:57:59Z

NA

date: Date

time: String

DateTime

## List Functions The **Custom Expression Editor** supports the following `List` formulas and operators:
Function NameDescriptionExampleParameter DefinitionInput Data Type ParametersOutput Data Type

joinBy

Merges a list into a single string value and uses the provided string as a separator between each item in the list.

joinBy([a, b, c], ,] = a, b, c

joinBy([Hello, Composer] , - ) = Hello-Composer

joinBy([Mr, Max, Mule], emptyString()) = MrMaxMule

list separator

Note that you can use a List data pill, a function that returns a list (such as splitBy), or a list that you build manually using [ ] as a parameter to the function.

list: List<String>

separator: String

String

splitBy

Splits a string into a list of strings based on a separating string that matches part of the input string.

This filters out the matching string from the returned list. The separator can match any character in the input.

splitBy(Hello-Composer, -) = [Hello, Composer]

splitBy(192.88.99.0, .) = [192, 88, 99, 0]

text separator

text: String

separator: String

List<String>

## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Tableau Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Tableau as a data target. For example, you can push Salesforce data to an existing Tableau hyper file. Some details of how to work with data in a flow are specific to the data target. ## Tableau Requirements for Composer - You can connect to Tableau Online or Tableau Server. - Your instance of Tableau must be publicly internet-facing and be version 2019.4 or higher. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Tableau server URI The URI is the domain where you usually log in, for example, `\https://[region].online.tableau.com` Token name The personal access token that you created in the Tableau Account Settings page Token secret The secret corresponding to your **Token name** Site The site attribute, also called a Site ID This is the first portion of the URL that appears after `/site` in the browser URL bar after you log in. If you are connecting to Tableau Online, you must supply the site attribute. For example, if you see `https://10ay.online.tableau.com/#/site/MarketingTeam/workbooks` in your browser URL, the **Site** value is `MarketingTeam`. For more information about authentication in Tableau, see the [Tableau documentation](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_auth.htm). ### Limitations Only one flow can append to the same Tableau data source. If more than one flow or app outside of Composer accesses the data source at the approximate same time, a Composer error will occur. ### Duration of Tokens Tableau has limits on personal access tokens that affect your connection: - Any token not used in 15 days is revoked. If you fail to exercise a connection in 15 days, you’ll need to create a new token. - All personal access tokens are revoked after one year. You can add an expression to account for this. ## Triggers You must use a scheduler or other connector for a flow that includes Tableau. Event triggers are not available. ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Add Data to Data Source Add new data to an existing Tableau data source. - You must specify two pieces of information for each data source: the Tableau project ID and data source ID, which you can retrieve from the URL of the open project and data source, respectively. Once entered, Composer displays the project name and data source name instead of the IDs. - The data source you use must be published and must connect live to a hyper file. You can create a hyper file using Tableau Desktop (**Connect To a File → _hyper-file name_**) or by publishing a `.hyper` file via the REST API or `tabcmd`. You can’t access a live data source such as a CSV or Excel file, nor can you access data sources that are refreshed on a recurring basis per a schedule defined in Tableau. - The time it takes for changes made by the flow to show up in Tableau servers depends on the size of the hyper file. If the data source that you are populating has a `Time` field but does not include a date, then Tableau stores the date value in the data source as `30/12/1899`. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Testing a Composer Flow > For the full documentation index, see: https://docs.mulesoft.com/llms.txt By testing as you build your flow, you can ensure that each step and each field mapping in your flow is working as expected before activation. Frequent validation provides near real-time feedback about the success of your flow and enables you to fix errors as you build. Testing processes and tests a single record. You must activate your flow to process all of your records. When testing your flow, note the following: - A trigger step is required. - Testing automatically ends after ten minutes if not halted by an error or manually terminated. - The entire flow is executed and tested. When testing your flows: - Build your flow in a sandbox environment to test your flow using inactive accounts. - Test your flows with sample or dummy records. - Consider limiting the number of records processed if your test times out. > [!NOTE] When you test a flow with many steps, Composer keeps only a limited number of tracking > notifications, so early steps can appear blank even though they ran. Only the display is affected. > Your flow still runs and creates records. To confirm the results, check the records in the target > system. Composer is designed for simple, lightweight automations. See > [Known Issues and Limitations](https://docs.mulesoft.com/composer/ms_composer_ms_release_notes_ki). To test a flow: 1. In Composer, in the flows list, click the flow you want to test and click **Edit**. 2. Click **Test**. Composer notifies you when the test is complete. The execution results from the test appear on the card. > [!NOTE] If you need to contact Support for troubleshooting purposes, you can export your flow as a > JSON file to share your flow by clicking the wrench icon and selecting **Export**. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Twilio Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Twilio is a SaaS cloud communications platform that allows users to make and receive phone calls, send and receive text messages, and perform other communication functions using web service APIs. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Account SID The Account SID that you use to log in to Twilio. Auth Token The Auth Token that you use to log in to Twilio. ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Send Message Send a message to a recipient. Values are required in the following fields: - **To**: The value in this field must be the phone number in E.164 format, SIP address, or channel user address (such as WhatsApp or Facebook messenger channel) of the message recipient. - **From**: The value in this field must be the phone number in E.164 format, SIP address, or channel user address (such as WhatsApp or Facebook messenger channel) of the message initiator. To send a message, you must provide a value in one of the following fields: - **Message Text**: Provide a value in this field to send an SMS message. The value in this field cannot exceed 1600 characters. - **Media URL**: Provide a value in this field to send a media message. Media messages are only available in the United States and Canada. Media messages sent to recipients outside of the United States and Canada appear as an SMS message with an URL link. Make a Phone Call Initiates a phone call. Values are required in the following fields: - **To**: The value in this field must be the phone number in E.164 format, SIP address, or client identifier of the call recipient. - **From**: The value in this field must be the phone number in E.164 format, SIP address, or client identifier of the call initiator. - **TwiML URL**: The value in this field is the URL that hosts a set of TwiML instructions. For more information on TwiML, see the [Twilio documentation](https://www.twilio.com/docs/voice/twiml). ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the Twilio record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Using a Flow and Creating a Trigger > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can use Composer to address integration problems in your organization by building and configuring flows. In Composer, a _trigger_ is the flow’s sequence of actions. This is the first step of a flow. Prior to creating a trigger, you must first create, clone, or import a flow. ## Create a Flow You can create a new flow (from scratch or from template) or clone an existing flow. ### Create a New Flow From Scratch To create a new flow from scratch: 1. From the Composer **Home** page, click **Create new flow > Create Flow from Scratch**. Your flow is named automatically. 2. To change the name automatically created for your new flow, click the pencil icon next to **Untitled Flow** and create a custom name using any of the characters A-Z, a-z, 0-9, space, hyphen ( - ), dot ( . ), and underscore ( \_ ). 3. Click **Save**. Now you are ready to create a flow trigger. ### Create a New Flow From Template To create a new flow from template: 1. From the Composer **Home** page, click **Create new Flow > Create Flow from Template**. 2. Explore the template options and select the template you want to use. 3. Ensure you meet the prerequisites and if so, click **Use this Template**. 4. Configure your connections and information required by the flow. 5. Click **Create flow**. Now you are ready to use your flow. For more information about templates, refer to [Build a Flow Using Templates](https://docs.mulesoft.com/composer/ms_composer_build_a_flow_using_templates). ### Clone an Existing Flow To clone an existing flow: 1. From the sidebar, click **Flows**. 2. On the **Flows** page, click the name of the flow you want to clone. 3. Click **Clone**. Composer copies the existing flow and opens the copy in the Flow Details page. Notice that the flow is named **Copy of _original flow name_**. 4. If you want to rename the flow, click the pencil icon next to **Copy of _original flow name_** and use any of the characters A-Z, a-z, 0-9, space, hyphen ( - ), dot ( . ), and underscore ( \_ ). 5. Click **Save**. ## Export a Flow To export a flow as a JSON file: 1. Open an existing flow. The **** page appears. 2. Click **View**. 3. Click the wrench icon > **Export**. The flow is exported as a JSON file. ## Import a Flow To import a flow as JSON file: 1. [Create a new flow](#create-a-new-flow) or open an existing flow. The **** page appears. 2. Click **View**. The **** page appears. 3. Click the wrench icon > **Import - Beta**. The **Select Flow** dialog box appears. 4. Click **Select flow**. Your files appear. 5. Navigate to and select the JSON file that you want to upload and then click **Open**. The selected file appears in the **Select Flow** dialog box. 6. In the **Connect with ** drop down, choose an existing connection or create a new one: - Click an existing connection to select it. - Click **Add new Connection** to create a new connection and select it. 7. Click **Import Flow**. Note that importing a flow will replace the existing flow. The flow is imported and appears on the **** page. 8. Click **Save**. The flow is imported. ## Refresh a Flow When building a flow, you may need to refresh the flow to view updated data at either the object level or the field level. To refresh a object: 1. Open the flow. 2. Click the refresh icon in the upper right corner of the trigger or action card that you want to refresh. ![Refresh button for objects](/mulesoft/current/en-us/composer/_images/images/composer_refresh_card.png) The cache for the object type is cleared and the new data is retrieved. To refresh a field: 1. Open the flow. 2. Click the refresh icon in the bottom left corner of the trigger or action card. ![Refresh button for fields](/mulesoft/current/en-us/composer/_images/images/composer_refresh_field.png) The cache for the field is cleared. The new value providers for the field are retrieved. ## Create a Flow Trigger After you create or clone a flow, define the trigger: the event or time interval that starts the flow. A trigger step is required to test or activate your flow. To define a trigger based on an event: 1. Open a flow if it is not already open. The **What Should Start This Flow?** dialog is displayed. 2. Select the connector where the triggering event occurs. Your existing connections are displayed. You can choose an existing connection or create a new one: - Click an existing connection to select it. - Click **Add new _connector name_ Connection** to create a new connection and select it. You can rename or delete connections from this dialog by clicking the gear icon. 3. After you choose a connection, the trigger step displays: ![Trigger definition step](/mulesoft/current/en-us/composer/_images/images/trigger-definition.png) Your trigger is named automatically. All triggers are named by combining the event or operation with the system name. For example, "On new record in Salesforce". - Optionally, you can rename the trigger. Valid characters: A-Z, a-z, 0-9, space, hyphen ( - ), dot ( . ), and underscore ( \_ ). - Choose an event that starts the flow. Supply additional information as requested. - Click **Save**. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Using Actions in a Flow > For the full documentation index, see: https://docs.mulesoft.com/llms.txt An _action_ step in a Composer flow performs a task in a system. An action might extract data from a system, manipulate data, or send a notification in a system. ## Create an Action To create an action: 1. After the trigger in your flow, click the large plus sign to open the **Add Action** dialog. 2. Click or create a connection for the action. For example, if your trigger is "new records created in Salesforce," and you want your action to be "copy new record to a Google Sheet," then you would choose or create a Google Sheet connection. 3. Select an action, and any other values displayed. What you have to specify for an action depends on system type you are connected to for the action. 4. If you want to edit a field, and that field is enabled for a [custom expression](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#add-custom-expression-to-an-action), click the pencil icon. Note that you can only enter text or select a single data pill for a field. If you want to enter a complex expression (including functions, math operators, concatenation of text, and special tokens), you must use the **Custom Expression Editor**. 5. Click **Save**. When there are null values in custom expressions and are: - Fields without attributes, the null value is ignored. If the value in a required field, an error message occurs. If the value is in an optional field, the value is ignored and not sent to the connector. - Fields with attributes, the value is ignored and not sent to the connector. ## Define a Variable You can define variables in your Composer flow. Defining a variable enables you to complete certain use cases, such as aggregating calculations and storing values. You define variables locally within a flow and use them anywhere within that flow. ### Access the Variable Step To access the **Variable** step: 1. [Create a new flow](https://docs.mulesoft.com/composer/ms_composer_using_a_flow_and_creating_trigger#create-a-flow) or open an existing flow. 2. In the **** page, click **Edit**. 3. Locate the position in your flow where you want to access the **Variable** step and click the plus button. 4. In the **Next Step** window, click **Variable**. The **Variable** step appears. ### Create a Variable by Using the Visual Editor To create one or more new variables using the **Visual Editor** window: 1. [Access the **Variable** step.](#access-the-variable-step) 2. Select **Action** > **Create Variable**. 3. From the **Variable** section, click **Add Variable**. 4. In the **Label** field, enter a unique name for the variable. The name entered is unique only to this step. You can duplicate values in the **Label** field across different Variable steps. 5. In the **Data Type** dropdown, select the data type to use for the variable. The following [data types](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#data-types) are supported: `String`, `Number`, `Boolean`, `Date`, `DateTime` and `List`. If you select **List**, in the **List Item Type** field, select: - **String**, **Number**, or **Boolean** to return a list that contains primitive data types - **Object** to return a list of objects, for example, the output of the **Get Records** action Repeat the steps 4 and 5 until you added all the required fields for the Variable step. 6. To add additional variables in the Visual Editor, click **Add Variable**. You can create multiple variables in each Variable step. 7. Click **Apply**. 8. To modify the new variables, click **Manage Variables** to open the Visual Editor or **Edit Schema** to open the JSON Schema. ### Create a Variable by Using the JSON Schema To create one or more new variables using the **JSON Schema** window: 1. [Access the **Variable** step.](#access-the-variable-step) 2. Select **Action** > **Create Variable**. 3. In the **Variable** section, click **Create Schema**. 4. In the **JSON Schema** window, enter the properties for the variable to create. Note that each variable is defined within a `Properties` object with a `Variable Unique ID`. The `Variable Unique ID` enables the variable to be tracked within your flow. The `Variable Unique ID` can contain only alphanumeric characters, hyphens, and underscores. When using the Visual Editor, this ID is automatically generated for you. Each variable must specify the title and data type. To set the properties for the variable definition, complete the following: - `Variable Label (Title)`: Display label for the variable. (Required) - `Type`: Data type of the variable. The following [data types](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#data-types) are supported: `String`, `Number`, `Boolean` and `Array`. To define a `Date` or `DateTime` variable, set the data type to `String` and define the `Format` property. (Required) - `Format`: Qualifier for `String` properties that can specify additional data types not natively supported in JSON. For variables, set this value when defining `Date` or `DateTime` variables as `date` or `date-time` respectively. (Optional) - `Items`: Item type for `List` variables. `Items` is an object and accepts the following child properties: (Required only when defining List variables) - `Type`: Data type of the variable. The following data types are supported for List items: `String`, `Number`, `Boolean`, and `Object`. If defining an `Object`, you must also define the properties of that `Object`. (Required) - `Properties`: Child properties of an object. `Properties` is required if the `List Item Type` is set to `Object`. In the `Properties` object, each property key is the name of the property in the `Object List Item` and is set to an object that defines its data type. For more information in defining the data type of object child properties, refer to `Type` (step 4b) and `Format` (step 4c). (Optional) The properties and values appear in the **JSON Schema** window. Example: Properties and values in the **JSON Schema** window ```JSON { "properties": { "var-01": { "type": "string", "title": "My String" }, "var-02": { "type": "number", "title": "My Number" }, "var-03": { "type": "boolean", "title": "My Boolean" }, "var-04": { "type": "string", "title": "My Date", "format": "date" }, "var-05": { "type": "string", "title": "My Datetime", "format": "date-time" } } } ``` 5. To add variables in the JSON Schema, enter them in the window. 6. Click **Apply**. 7. To modify the new variables, click **Manage Variables** to open the Visual Editor or **Edit Schema** to open the JSON Schema. ### Initialize a Variable After creating a variable, you can initialize it: 1. Create a new variable by using either the [Visual Editor](#create-a-variable-using-the-visual-editor) or the [JSON Schema](#create-a-variable-using-the-json-schema). 2. Complete the initial value for each variable. If variable’s data type is: - `String`, `Number`, `Boolean`, `Date`, or `DateTime`, the default value is defined under each variable. If the field is empty, the value is set to the default value for that data type. You can enter a value manually, select any existing data pill (including variables) from your flow, select a [Picklist Mapping](#create-a-picklist-mapping) (for `String` variables) or you can select the [**Custom Expression Editor**](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#add-custom-expression-to-an-action) to create a custom expression. - `List`, the default value is defined under each variable. If the field is empty, the value is set to the default value for that data type. You can enter a value manually. For primitive list types (`String`, `Number`, `Boolean`, `Date`, or `DateTime`), you can create a list statically using the [**Custom Expression Editor**](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#add-custom-expression-to-an-action) or [map in a list data pill](#create-a-picklist-mapping). For List, select either: - **Dynamic List** to create multiple items in the list. Use a list pill to reference the number of items created. Then, map the fields of the elements of the list. - **Static List**, and then initialize the list with as many items as you need. If you do not add any items, the list is empty by default. The variable is initialized. ### Update a Variable #### Before You Begin If you are updating a variable with a value created from another variable, do not update them in the same step. Variables are not necessarily updated in the same order in which they are listed. To avoid unexpected behavior, update each variable in separate steps. To update one or more variables: 1. [Access the **Variable** step.](#access-the-variable-step) 2. Select **Action** > **Update Variable**. 3. In the **Variable** section, click **Select Variables**. The **Select Variables** window appears, displaying a list of all variables included in your flow before this step. 4. Select the checkbox next to one or more variables or click **Select all variables** to select all variables in the list. 5. Click **Apply**. The **Update Variable** step appears. 6. Update the value for each variable. If the data type for the variable your selected is a: - `String`, `Number`, `Boolean`, `Date`, or `DateTime`, you can enter a value manually, select any existing data pill (including variables) from your flow, select a [Picklist Mapping](#create-a-picklist-mapping) (for `String` variables) or you can select the [**Custom Expression Editor**](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#add-custom-expression-to-an-action) to create a custom expression. - `List`, you can add items to the start or the end of the list or replace the existing list with a new list. For primitive list types (`String`, `Number`, `Boolean`, `Date`, or `DateTime`), you can create a list statically using the [**Custom Expression Editor**](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#add-custom-expression-to-an-action) or [map in a list data pill](#create-a-picklist-mapping). For List, select either: - **Dynamic List** to create multiple items in the list. Use a list pill to reference the number of items created. Then, map the fields of the elements of the list. - **Static List**, and then initialize the list with as many items as you need. If you do not add any items, the list is empty by default. ## Create a Picklist Mapping Using Picklist Mapping, you can map data from one application to the corresponding data needed by another application and then reuse those mappings in different flows in your organization. This enables you to connect two applications that have different values for similar fields and to align the values in those fields across applications. You can then determine how the possible values of an output field (data pill) map to the possible values of an input field. For example, you can map a data pill from the **Country** field in a Salesforce record and provide the same values in the **Country** field of the NetSuite record.
Country (Salesforce)Country (NetSuite)

US

_unitedStates

CA

_canada

DE

_germany

AR

_argentina

In this example, the **Status** field in a case in Salesforce is mapped to the **Status** field in a ticket in Zendesk to create continuity in field values across systems.
Status (Salesforce)Status (Zendesk)

New

New

Working

Open

Waiting on Customer

On-Hold

Escalated

Open

Closed

Closed

When mapping source data fields: - The source field must be a data pill with a fixed list of values. - The target field must be an enumerated [data type](https://docs.mulesoft.com/composer/ms_composer_custom_expression_editor#data-types) field or any string field. - If any other unmapped value from the source system is found, the default mapping specifies the value in the target system. If you do not specify a default value, the original value from the source field is passed to the target field. - The mapping is stored at the organization level and can be reused across flows. No additional steps are needed to reuse mappings across different flows. - The mapping must have a unique name. - Mappings are available to everyone in your organization. To map source data fields to target fields: 1. From the **Composer Flows** tab, open a flow and click **Edit**. 2. In an action card, in a field that supports **Pick from List** or any string field, select **Picklist Mapping** from the menu. The **Picklist Mapping** window appears. 3. In the **Picklist Source** section, in the **Source** field, select the value from the list that you want to map to the value in the **Target** field, and then click **Next**. 4. In the **Global Picklist Selection** section, create a new picklist or choose an existing picklist. ### Create A New Picklist To create a new picklist: 1. Click **Create new picklist**. 2. In the **Global picklist name** field, enter a unique name for the picklist. 3. Optionally, in the **Description** field, enter a description for the picklist. The following description is populated automatically based on your source and target systems: `This maps [Source Field Name] from [Source Connection Name] to [Target Field Name] from [Target Connection Name]` 4. In the table, select the source fields and their target mappings. 5. To add additional field mappings, click **Add Row** and if the additional field mapping is a: 1. **Pick from List** field, enter the source field values manually (with a row representing each value) and select the target mappings from the dropdown. 2. String field, manually define the value in the target field. 6. Once you have added all applicable field mappings, click **Create Picklist**. 7. Click **Apply**. The **** section appears, displaying a table of values and their mappings. ### Choose An Existing Picklist To choose an existing picklist: 1. Select a picklist from the list. Note that all edits made to an existing picklist will impact all flows in which that picklist is currently used. 2. Optionally, in the **** section, to edit the values, click the pencil. Once you have edited the values, click **Save Picklist** and then click **Apply**. 3. Optionally, in the **** section, to delete the picklist, click the trashcan. Note that deleting a global picklist will affect all flows currently using that picklist. 4. Click **Apply**. The action card appears. ## Create a Flow Control If you need to perform some logic before an action, select a flow control first: 1. After the trigger in your flow, click the large plus sign to open the **Add Action** dialog. 2. Click either **If/Else Block** or **For Each**. An If/Else block is good when you need to do different actions depending on one or more conditions. A For Each loop is good for processing a set of records. 3. Complete the flow control, which usually includes adding an action. 4. Click **Save**. ### Add An If/Else Block You can create an If/Else block to set conditions and execute actions only when specific criteria are met. This enables you to create flows that cover more than one linear branch, without the need to create separate flows. Branches are logic-based steps that run vertically in a flow. You can add multiple steps inside each branch. Each branch is then executed in sequential order. When adding decision steps, the values in the **Field** list are populated based on values selected when you specify the previous steps of your flow. After the **Field** value is selected, all compatible value options appear in the [**Operator**](#supported-operators) list. If the selected **Operator** requires a second data pill to complete the condition, then the **Value** field is enabled and the list is populated based on the values you selected when defining the trigger. In the **Value** field, you can either enter a value manually or you can set it using the existing data from your flow. For the purposes of comparing flows, if you initiate a date comparison when building a flow and there is no value in one of the date fields, the missing value is updated to `0001-01-01` by default. The following operators are supported when building conditions in an If/Else block:
FunctionSupported Data TypeValue Required?Notes

Equals/Does not equal

All

Yes

The value in this field is case-sensitive for strings.

Contains/Does not contain

Array, String

Yes

None

Greater than/Less than

Date, Number

Yes

In the Date field, the Greater than value is equal to a later date and the Less than value is equal to an earlier date.

Greater than or equal/Less than or equal

Date, Number

Yes

In the Date field, the Greater than or equal value is equal to a later date or the current date and the Less than or equal value is equal to an earlier date or the current date.

Is empty/Is not empty

Array, String, Object

No

None

Starts with/Ends with

String

Yes

A string value for this field is required.

Is true/Is false

Boolean

No

None

Is present/Is not present

All

No

If the value in this field is null or if there is no value selected, then the value in this field is set to Not present by default.

To create an If/Else block: 1. Click the plus sign after the trigger or the last action in your flow. 2. Click **Add Action**. 3. Click **If/Else Block** to define the first branch. 4. Enter the requested criteria. You can specify that `all conditions should be met (AND)`, `any condition can be met (OR)`, or [customize](#use-custom-logic) the order and grouping of your conditions. 5. Click **+** to add an action to that branch. Every branch must have an action, also called a _step_. 6. If you want to add another branch, click **Add If** and repeat the previous steps for every If/Else branch you create. 7. If you want to set criteria for how the flow executes if none of the criteria for the existing branches are met, click **Add Else** and repeat the previous steps for the final branch. 8. If you want to add additional conditions to your If/Else block, click **Add condition**. 9. After you add all the branches, click **Save**. ## Use Custom Logic Custom logic uses the row number for each condition in the If statement block of an If/Else statement and `OR`, `AND`, and `NOT` to create complex expressions. When you select the custom logic option, each condition is assigned a number and you can then use that number to customize the order of operations for the conditions. When using custom logic, all conditions defined must be referenced in the expression for the expression to be validated. For example, if there are three defined conditions and you enter “1 and (2 or 1)”, the expression is invalid because “3” is not referenced. Using custom logic, you can have up to 20 conditions and a condition can be referenced more than once. ## Create A For Each Loop To create a For Each Loop: 1. Click the plus sign after the trigger or the last action in your flow. 2. Click **Add Action**. 3. Click **For Each**. 4. Choose a data pill from the **Input list**. You must have a trigger or action that returns a set of records or there won’t be anything to choose here. 5. Click the plus sign to add an action. 6. After you complete the action, click **Save**. You can add logic and actions in different patterns, depending on what your flow needs to do. ## Configure Error Handling When executing a flow, you can watch for connection or logic errors in specific steps of your flow and then specify logic to handle the errors. You can also configure steps to complete additional actions or to send notifications if an error occurs. ### Access Error Handling To access the error handler: [Create a new flow](https://docs.mulesoft.com/composer/ms_composer_using_a_flow_and_creating_trigger#create-a-flow) or open an existing flow. . If you create a new flow: .. Select the connector or system to start your flow. .. Select and configure a trigger. .. Select and configure an action. .. Directly before the step to which you want to add an error handler, click the plus button. .. In the **What Should Start This Flow?** window, click **Error Handler**. . If you add a step to an existing flow: .. Open your flow. .. Directly before the step to which you want to add an error handler, click the plus button. .. In the **Next Step** window, click **Error Handler**. ### Watch a Step You can watch specific steps for connection or logic errors. If an error occurs, the flow stops normal processing and begins processing the steps in the error handler. You can add one or more steps to watch in this section. To watch a step: 1. [Access the error handler in your flow](#access-error-handling). 2. In the **Error Handler** card, in the **Watch** section, click the plus sign and select the action to watch or drag the step to watch into the **Watch** section. The selected action appears in the **Watch** section. If an error occurs, the flow moves to the actions selected in the **On Error** section. 3. To add additional actions to watch, repeat the previous step. ### Configure Composer to Handle Errors You can configure Composer to handle errors encountered in the **Watch** section. If an error occurs in a watched action, the **On Error** section begins processing the flow based on your configuration. You can add one or more steps to run in the **On Error** section. #### Error Handling Behavior - By default, the **On Error** section allows for one condition to be met; however, you can add as many conditions as you want in this section. - When adding a new condition, the **On Error** condition field value is set to `None` by default. Leaving this value set to `None` returns any errors that may occur in the **Watch** section and processes all steps inside this **On Error** section. - When a condition is met in the **On Error** section, the error handler processes the conditions in sequential order and stops once the first condition is met. After the first condition is met, any subsequent steps are skipped. If you want the process to continue, you can add an additional **On Error** section branch inside your existing **On Error** section. - When [testing your flow](https://docs.mulesoft.com/composer/ms_composer_test_flow), any errors caught by the error handler appear in the right pane of the action card. Successful steps are marked with a green check and failed steps are marked with a red X. - When an error occurs in a watched action, the error information is saved as a data pill that can then be used for subsequent notification or record-updating actions. For example, if an error occurs, you can specify an action to send an email to your team containing the error information from the data pill. - When configuring error handling, you can establish different sequences to meet your requirements. You can: - Add all steps in one error handler. If you have the same **On Error** process for any errors or if you can configure multiple **On Error** processes with error conditions to handle specific types of errors, then add all steps in one error handler. As a result, if any error occurs in the step inside the **Watch** section, the remaining steps in the same **Watch** section stop. - Add more than one error handler in a flow. You can group steps into seperate error handlers or each step can have its own error handler. This provides the flexibility to configure different steps when errors occur. - Place an error handler inside a For Each loop. If an error occurs inside a For Each loop, adding an error handler in the for each loop allows the loop to continue past an error. To set an error handler to continue after an error occurs, in the **After running** drop down, select **Continue**. To provide further clarity on the error, add a step to update the failed record for troubleshooting. #### Add Steps to the On Error Section To add steps to the **On Error** section of your flow: 1. [Select a step to watch](#watch-a-step). 2. In the **Error Handler** card, in the **On Error** section: 1. In the **Conditions to run this branch** dropdown, select one of the following conditions and then enter the requested criteria: - `AND`: Meets all conditions. - `OR`: Meets any conditions. - `None`: Returns all errors without meeting any conditions. - `Custom Logic`: Specify [custom logic](#use-custom-logic) to meet conditions. 2. In the **After Running** dropdown, select: - **Stop**: After processing all steps in the **On Error** section, Composer flags errors and stops the flow. On the **Run History** page, the _Status_ field of the flow shows `FAILED`. - **Continue**: After processing all steps in the **On Error** section, Composer dismisses errors and the flow continues. If no other errors occur, on the **Run History** page, the _Status_ field of the flow shows `SUCCESS`. 3. If you want to add additional conditions to this **On Error** section, click **Add Condition**. 4. If you want to look for a specific error condition and specify how it is handled within your existing **On Error** section, click **Add On Error** to add a new branch with steps. When adding a branch to the **On Error** section, in the **After Running** section, select: - **Continue**: Processes **On Error** steps and then continues to the next step within the parent step. - **Propagate**: Processes **On Error** steps and then pushes the error to the parent error handler section. The child step then stops processing and the error handler process returns to the parent step. 5. Optionally, in the **On Error** section, click the plus button to add steps to handle an error: 1. In the **Next Step** window, select **System Action**. 2. Select an action to complete when an error occurs. For example, add an action to send a notification email with the **Record ID** and error information to your team or update the source record with error information. 3. Configure the action. 6. Save the flow. 7. [Test the flow](https://docs.mulesoft.com/composer/ms_composer_test_flow). 8. [Activate the flow](https://docs.mulesoft.com/composer/ms_composer_activation). ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Workday Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Workday as a data source or data target. Some details of how to work with data in a flow are specific to the data source or data target, and to the specific trigger or actions you choose. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. To validate and test connectivity, Workday Connector uses a `Performance_Management` service with the `Get_Degrees` operation. You must ensure that your service account has the required permissions to operate on that service:
Security PolicyDomain/Functional AreasPermitted Security Groups

Set Up: Skills and Experience

Worker Profile and Skills

  • HR Administrator

  • HR System

  • Implementers

  • Job and Position Administrator

  • Learning Management System

Implementation

Implementers

Special OX Web Services

Implementation

Tenant Name The name or ID of your Workday tenant. For example, if the URL where you log into Workday is `na.workday.com/wday/authgwy/global-modern/`, then your tenant name is `global-modern`. To obtain the tenant name from the sandbox: 1. View the upper left corner of the page, in which the tenant details are displayed in the format `Sandbox Type - Tenant Name`. User Name The username that you use to log in to Workday. Password The password that you use to log in to Workday. Host Name The host name of your Workday instance. For example, `wd2-impl-services1.workday.com`. To find your host name: 1. Log into Workday via the web interface. 2. In the search box, type `Public Web Service` and then select **Public Web Service** from the search results. 3. Click on **…​** and select **Web Service > View WSDL**. Check `soapbind:address` to ensure you are using the correct host name, for example, ``. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New or updated object This trigger checks for a new or updated object in Workday Financial Management. A value is required in the following field: **Object**. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Get Worker Details by ID This action returns the worker details corresponding to the employee’s `Workday ID` that you supply. Create Worker This action creates a new worker. Update Job Requisition This action updates the details on a job requisition. Get Customer This action returns the customer details corresponding to the customer ID that you supply. Create Object This action creates a new object in Workday Financial Management. Provide a value for **Object**. Update Object This action updates an existing object in Workday Financial Management. Provide a value for the following fields: - **Object** - **Unique ID** Get Object This action returns an existing object in Workday Financial Management. Provide a value for the following fields: - **Object** - **ID** ## Object Types The following object types are available: - Triggers - JOB\_REQUISITIONS - WORKER - Actions - COMPANY - CONTRACT - CUSTOMER - INVOICE - JOB\_REQUISITIONS - PROJECT - SALES\_ITEM - WORKER ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the Workday record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Xero Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Xero is a SaaS-based accounting application used primarily by small to medium sized businesses for accounting functions such as invoice creation and tracking, receiving and tracking payments, managing inventory, storing customer contacts, and creating purchase orders and quotes. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: To establish a connection from Composer to Xero, you must select the Xero Organization to which you want to connect in the **Organization** field. Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Username The OAuth username that you use to log in to Xero. Password The OAuth password that you use to log in to Xero. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency five minutes. This system provides the following trigger options: New or updated Contact Checks for a new or updated contact record. Provide a value for the following fields: - **Organization** - **Contact Type** New or updated item Checks for a new or updated item record. Provide a value for the following fields: - **Organization** - **Is purchased** - **Is sold** - **Is tracked as inventory** New or updated payment Checks for a new or updated payment. Provide a value for the **Organization** field. On New or Update Invoice Checks for a new or updated invoice. Provide a value for the following fields: - **Organization** - **Invoice type** - **Invoice status** ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create or update contact Creates a new contact record nor updates an existing contact record. Provide a value for the following fields: - **Organization** - **Contact name** - If you add additional contacts, you must also provide a value for **Email address**. Search contacts Returns a list of contact records based on values entered. Provide a value for **Organization**. Get contact by ID Returns a single contact record based on the ID value. Provide a value for the following fields: - **Organization** - **Contact ID** Create or update invoice Creates or updates an invoice record. Only direct columns within Invoice are supported. Provide a value for the following fields: - **Organization** - **Invoice type** - **Contact name** - **Items** Update invoice headers Updates specific fields in an invoice record. Provide a value for the following fields: - **Organization** - **Invoice Reference Type** - **Invoice Reference** Create or update item Creates or updates a field in the item record. Provide a value for the following fields: - **Organization** - **Item Code** Get Invoices Returns new or updated invoice records. Provide a value for **Organization**. ## Objects The Action: **Create or update invoice** object is available. ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the Xero record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Zendesk Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Zendesk is a help desk management solution providing tools for customer service. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Connection Display Name The Connection Display Name that you use to log in to Zendesk. Base URI The Base URI that you use to log in to Zendesk. ## Triggers Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system. Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds. This system provides the following trigger options: New/updated ticket Checks for a new or updated ticket. New/updated organization Fires when a new organization is created or an existing organization is updated in Zendesk. New/updated user Fires when a new user is created or an existing user is updated in Zendesk. ### Polling Frequency For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more [API calls](https://docs.mulesoft.com/general/automation-credits-usage-and-rates). For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Create a ticket Creates a new ticket. Provide values for the following fields: - **Subject** - **Comment** Update a ticket Updates an existing ticket. Provide values for the following fields: - **Ticket ID** - **Description** Search tickets Searches for a ticket based on specified criteria. Create or update an organization Creates a new organization or updates an existing organization. Create or update a user Creates a new user or updates an existing user. Provide a value for the following fields: - **ID type** - **Name** Search organizations Searches for organizations based on specified criteria and returns a list of organizations matching those criteria. Get Organization by ID Returns an organization based on specified ID search criteria. Search users Searches for users based on specified criteria and returns a list of organizations matching those criteria. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/) --- product: Composer --- # Zuora Connector Reference > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Zuora is a subscription management and recurring revenue service that manages product packaging, plans, and pricing, as well as customer product subscriptions and accounts creation for automatic billing and payment. ## Connections To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect. This system requires the following credential information for its connections: Connection Name Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others. Only you can see the connection. Other users in your Composer app must create their own connections. Client ID The OAuth Client ID registered with Zuora. Client Secret The OAuth Client Secret registered with Zuora. Environment The Base URI for the Zuora tenant. For more information, see the [Zuora documentation](https://developer.zuora.com/v1-api-reference/introduction/). ## Actions After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to. This system provides the following actions: Get Account Retrieves information about a customer account. The **Account Key** field is required. Create Account Creates a customer account with a payment method, a bill to contact, and an optional sold to contact. The following fields are required: - **Account Name** - **Credit Card Payment Method** - **Currency** - If no subscription is created, then the **Bill Cycle Day** field is required. - **Bill To Contact First Name** - **Bill To Contact Last Name** - **Bill To Contact State** - **Bill To State Country** Update Account Updates a customer account with a payment method, a bill to contact, and an optional sold to contact. The following fields are required: - **Account Key** - If the value in the **Auto Pay** field is set to `true`, then the **Credit Card Payment Method ID** field is required. Create Rate Plan Charge Creates, compiles, and sends a new product rate plan. The following fields are required: - **Name** - **Product Rate Plan ID** - **Charge Model** - **Charge Type** - If the value in the **End Date Condition** field is set to `Fixed Period`, then the following fields are required: - **Up To Periods** - **Up To Period Type** - If the value in the **Price Increase Option** field is set to `Specific Percentage Value`, then the **Price Increase Percentage** field is required. - If the value in the **Taxable** field is set to `true`, then the following fields are required: - **Tax Code** - **Tax Mode** - **Trigger Event** - **Unit of Measure** Update Product Rate Plan Charge Updates an existing product rate plan charge. The following fields are required: - **Product Rate Plan ID** - If the value in the **Billing Period** field is set to either `Specific Weeks` or `Specific Months`, then the **Specific Billing Period** field is required. - If the value in the **End Date Condition** field is set to `Fixed Period`, then the following fields are required: - **Up To Periods** - **Up To Period Type** - If the value in the **Price Increase Option** field is set to `Specific Percentage Value`, then the **Price Increase Percentage** field is required. - If the value in the **Taxable** field is set to `true`, then the following fields are required: - **Tax Code** - **Tax Mode** ## Custom Fields Custom fields are not supported. Using MuleSoft Composer, you can access standard field values for actions and triggers that you set in the Zuora record. ## See Also - [Mulesoft Composer: Overview](https://docs.mulesoft.com/composer/ms_composer_overview) - [MuleSoft Composer: Getting Started](https://docs.mulesoft.com/composer/ms_composer_prerequisites) - [Composer Connector Reference](https://docs.mulesoft.com/composer/ms_composer_reference) - [Knowledge Articles](https://help.salesforce.com/s/)