Browse this page for answers to some of the frequently asked questions you might have about IBM® App Connect. Click on a question to see the answer, or click the Show all button to show the answers to all questions.

If you have a question that is not answered here, check the forum, where you can also ask questions for support or general topics. For questions about this FAQ, you can add a comment to the bottom of this page.

For step-by-step examples, see Tutorials for IBM App Connect.


Getting started

What is IBM App Connect?

IBM App Connect is a Software as a Service (SaaS) solution that provides the App Connect Designer web application for simple, guided app-to-app connections that business users can easily create for themselves in a few minutes.

  • You can connect apps like Salesforce, Marketo, and SAP, so that when an event occurs in one app the other connected apps are updated automatically.
  • Your IT department can expose in-house applications, such as IBM Integration Bus message flows, as custom apps in App Connect Designer, with the same look-and-feel, and ease of use, as other apps.

IBM App Connect is available as an offering that runs in the IBM Cloud, https://appconnect.ibmcloud.com/, and as a service on IBM Bluemix, https://console.bluemix.net/catalog/services/app-connect. To help choose between the App Connect offering and App Connect on Bluemix, see the blog post 5 Reasons why you should consider App Connect on Bluemix.

The IBM App Connect Professional offering provides powerful, highly-flexible integration solutions between hundreds of apps and systems. It includes the App Connect Designer and adds the classic Studio and its web management console for development and management of integration solutions.

App Connect Professional is available as a multi-tenant platform that runs in the IBM Cloud, https://appconnect.ibmcloud.com/professional/.

What is a flow?

There are two types of flow in IBM App Connect: an event-driven flow and a flow for an API.

In an event-driven flow, you identify an event that can occur in your first application (the source application), and actions that can be performed in one or more target applications. The flow links the event to the actions so that, whenever the event occurs in the source application, the action is automatically triggered in the target applications.

For example, you might create a flow so that whenever someone registers as a new attendee with Eventbrite (the event), App Connect automatically adds details of the attendee as a new contact in Salesforce and as a new task in Asana (the actions).

A multi-node flow, with the source application and 2 target applicationss
A multi-node flow, with the source application and 2 target applications

Each successfully completed action counts towards your monthly quota.

A flow for an API contains a request, one or more target application actions, and a response. The request uses a model that you define to request the creation, replacement, or retrieval of data objects in your applications. When the request is submitted, each target application performs its action, and then the flow returns a response that either confirms that the actions were successful, or returns the data that was requested.

A flow for an API that creates a contact in your CRM system
A flow for an API that creates a contact in your CRM system

What applications can I connect?

For a list of all the applications that are currently supported by App Connect Designer, see the App Connect Designer > Applications page. Click an application to see more details about support for that application.

We’re working hard to add support for more applications, so the list is growing from week to week. If there are other applications that you want to use with App Connect, let us know. You can either add comments to the bottom of this page or .

IBM App Connect Professional Studio includes even more pre-built connectivity to hundreds of SaaS, packaged, and proprietary applications, both on cloud and on premises, which include Enterprise resource planning (ERP), Customer relationship management (CRM), Databases, web services, and flat files. This connectivity is established to endpoints by using native application protocols, with the advantage that no additional adapters are required and there is nothing to install or change at the endpoints.

For more information about applications supported by IBM App Connect, see Extensive built-in connectivity using IBM App Connect.

What devices and browsers can I use to access App Connect?

App Connect Designer has been tested with latest versions of the following web browsers on the devices listed:

  • PCs:
    • Google Chrome
    • Mozilla Firefox
  • Apple Macs:
    • Google Chrome
    • Safari
  • Apple iPads with i/OS 10.x and above:
    • Safari
  • Android tablets:
    • Google Chrome

To use App Connect Designer, you should use the latest version of one of these web browsers. But, if you’re having problems with a different browser, let us know by posting an entry in the forum.

How do I get started for free (I have an IBMid)?

Follow these simple steps to get started with IBM App Connect:

  1. Click Sign Up.
  2. Click Already have an IBMid? (if you don’t already have an IBMid, use the steps below).
  3. Enter your IBMid, then click Continue.
  4. Enter your password, then click Sign up for App Connect.
  5. Enter your company name and phone number.

Result: Your My IBM – Products and services page is displayed with a tile for IBM App Connect, which you can use to launch App Connect and start connecting your applications. The next time you want to use App Connect, you can go directly to the App Connect home page, and log in with your IBMid and password.

How do I get started for free (I don’t have an IBMid)?

Follow these simple steps to create an IBMid and get started with IBM App Connect:

  1. Click Sign Up.
  2. Enter your email address and a password to use for your IBMid.
  3. Complete the other required fields in the form.
  4. Click Continue. A confirmation code is sent to your email account.
  5. Paste your confirmation code into the field provided, then click Sign up for App Connect.

Result: An IBMid is created with a name (your email address), and the password that you provided. Your My IBM – Products and services page is displayed with a tile for IBM App Connect, which you can use to launch App Connect and start connecting your applications. The next time you want to use App Connect, you can go directly to the App Connect home page, and log in with your IBMid and password.

How do I configure App Connect to connect to my applications?

You must provide account details for each application that you want to connect. You can add the
account details for your applications in two ways:

Before you create a flow
Select an application from the Applications page, click Connect to app_name, and then enter the account details for the application.
While you are creating a flow
When you select an application that you want to connect, click Connect to app_name, and then enter the account details for the application.

Follow the prompts to permit App Connect to communicate with the application on your behalf.

Many applications require just a user name and password, but some need more information. You can find out how to find this information in the “How to” guides for apps.

Note: Currently, you can have only one account connected to each application. If you later want to connect a different account, or change the details of your existing account, you can choose an option to either update the account in use, or to remove that account then create a new account. (Before you can update an account, you must stop all the flows that use that account. Before you remove an account, you must delete all the flows that use that account.)

What is the App Connect system status?

Check the following page to see if there are any current known issues with App Connect, and if there are any planned maintenance windows during which App Connect will be unavailable: https://developer.ibm.com/integration/docs/app-connect/app-connect-status/

I think I have a problem using App Connect. How do I get help?

There are a few things that you can do to troubleshoot your flows in App Connect:

  • Look at the tile for a running flow on the App Connect dashboard. If there’s a green tick, the flow has run successfully; click the tick to see when the flow was last triggered. Successful flow icon on a dashboard tile

    If there’s a red exclamation point, there’s a problem; click the exclamation point to find out what’s gone wrong. Flow error icon on dashboard tile

  • If you’re accessing App Connect through Bluemix, you can find information about what your flows are doing in the logs. For more information, see the App Connect Bluemix docs.

If you need help with a problem while using IBM App Connect, use the following resources:

  • Browse this FAQ page for answers to some of the questions that you might have about IBM App Connect. For example, check the FAQ for the App Connect system status.
  • Check the forum to see if an answer is already provided there.
  • Ask a question about your problem in the forum, providing as much detail as possible to help answer your question. The forum is monitored by the IBM App Connect team and by other App Connect users.

Creating and managing flows

How do I create an event-driven flow?

Creating an event-driven flow takes just a few steps:

  1. On the Dashboard in IBM App Connect Designer, click New > Event-driven flow.
  2. Enter a name that identifies the purpose of your flow.
  3. Select the source application, and the event to trigger the flow.
  4. Select and configure one or more target applications, and the actions to be performed.
  5. Optionally, you can add an “If” node or a “For each” node from the Logic tab to provide conditional processing or to process retrieved items.
  6. Click Exit and switch on to save and start your flow.

See the tutorial Creating an event-driven flow.

For more examples of creating event-driven flows, see:

How do I create a flow for an API?

If you want a developer to be able to create an app that makes use of the data in your cloud-based applications, you can provide an API. For example, you might provide an API that can create, retrieve, and update customers in your CRM system.

Creating flows for an API involves the following steps:

  1. Create one or more models that define the structure of the objects that you want to create or retrieve.
  2. Choose the create, retrieve, or update operations to perform against each model.
  3. Configure a flow that implements each operation, adding one or more target applications that hold the data.

See the tutorial Creating flows for an API.

For more examples of creating event-driven flows, see:

How does a retrieve action work?

A retrieve action gets information from an application so that you can use it in another application.

When you add an action to your flow to retrieve objects, you can define one or more conditions to make sure that you’re retrieving the right items. Or, if you just want to retrieve all items of a particular type, you can delete the condition.

You can also define how many items you want to retrieve, and what happens if App Connect finds more than or less than that number.

You can handle your retrieved items in two ways:

  • You can add a For each node after the retrieve action to perform an action for each of the items that were retrieved.
  • You can add another action after the retrieve action to process the list of retrieved items. This is a single action, no matter how many items are returned – such as creating an email that lists all the retrieved items.

You can also decide what action to take based on the status code that you get in response to the retrieve action. You could use an “If” node to perform different actions for different status codes. The status codes that you’re likely to see in response to a retrieve action are:

  • 204: No records were found
  • 200: All records in the application match the condition
  • 206: The specified maximum number of records were retrieved, but more matching records exist in the application

For step-by-step instructions for configuring App Connect to retrieve items, see the tutorial Using IBM App Connect to retrieve items from your applications.

How does a create action work?

As the name suggests, a create action creates an object or record in an application. For example, if someone signs up to your event or submits a completed form, you might want to create a record for that person in your CRM or marketing application. Or if someone opens a ticket in your help desk application, you might want to create an email or instant message to ensure that someone deals with it straight away.

If there’s a possibility that the object that you want to create might already exist, you can use an update or create action instead.

How does an update or create action work?

An update or create action changes an existing record in your target application if it exists, but creates the record if it doesn’t already exist. It’s also known as an upsert (update or insert) action.

For example, say someone has submitted a Wufoo form with a change of address. If the contact is already in your CRM system, you want to update their address; but if they’re not, you want to add them. Like the retrieve action, when you choose an action to update data in one of your applications, you can add one or more conditions to ensure that you’re updating the right information.

If there’s more than one record in your target system that matches your criteria, you’ll see an error for the flow on the dashboard, and the flow won’t update or create any records. For example, maybe you have more than one contact with the same first and last names. So you could try to match a contact by using unique data, such as their email address.

The status codes that you’re likely to see in response to an update or create action are:

  • 200: A record was updated
  • 201: A record was created

You can use these response codes later in your flow. Maybe you want to take different actions depending on whether a record was updated or created. For an example of defining actions based on response codes, see the tutorial Creating an event-driven flow that updates or creates a contact in Salesforce and updates Asana whenever you receive a form in Wufoo.

You can find a list of available update or create actions by searching for “update or create” on the Applications page.

The graphic shows that the user has entered "update or create" in the search field on the Applications page, and a list of Salesforce update or create actions is shown
Searching for update or create actions on the Applications page.

What data can I specify to pass to a target application?

For information about the data relating to specific applications, go to the “How to” guides for apps page and click the “How to” link for that app.

When editing a target application in a flow, you need to specify data for any required target fields. You can also specify data for any optional fields that you want to use for the target application.

Note: In each required field for the target application, ensure that you provide a value as needed by the target application. If you map the name of a source field, you should ensure that the source application will pass a suitable value; otherwise, if a value passed is invalid the flow can’t complete successfully. In your flow, you can use conditional logic to do something appropriate if a value passed is invalid.

Tip: If a field name is truncated, hover over the field name to display the full name.

A required field with truncated name and mouse pointer used to show full name

In each target field, you can add the names of source fields to have those field values passed to the target application. For example:

Target field containing Email source field reference
Target field containing Email source field reference

adds Jane Doe@email.com to the required target field ‘Email Address’ if the source field ‘Email’ contains Jane Doe@email.com (the source application must pass such a valid email address).

You can select fields from the trigger application or from previous target applications in the flow. For example: (Select the image to view the full flow editor screen capture.)

A target application can also use the response code from a previous action. In the following example, an If node follows a Salesforce “update or create” action to provide conditional processing depending on whether the Salesforce record was updated or created. You can use the status code in the If node to perform different actions for existing or new records. For more information about this example, see the tutorial Creating an event-driven flow that updates or creates a contact in Salesforce and updates Asana whenever you receive a form in Wufoo Screenshot that shows configuration of an If node

You can apply functions to the source fields. You can also type text in the target fields.

  • To add source field names, click in the target field and then either:
    • Type part of a source field name, and then select a source field from the list offered.
    • Select source field names from the (+) menu.
  • To use a transform function to customize the value of a source field, select the field name and then select Apply a function; select a function from the list provided.

See also FAQ: What transform functions are available and how do I use them?

What transform functions are available and how do I use them?

When editing a target field in a flow, you can add a transform function to customize the value of a source field that is to be passed to the target application.

The following table lists the available transform functions, describes the purpose of each transform function, and gives an example.

Notes:

  • The syntax of the functions is JSONata, a lightweight query and transformation language. Learn more at http://jsonata.org
  • You can insert functions into a target field by several techniques (after selecting the target field):
    • Select a source field that you have already inserted into the target field, and then select Apply a function from the context menu; select a function from the list provided.
    • Select the Insert function icon (fx), then select a function to insert into the target field, and then insert source fields into the function.
    • Type the JSONata expression directly.
  • In the target field, a function is represented with curly brackets; for example:
    email_b4_function

    after applying the substringBefore function, becomes:

    email_with_function

  • You can edit a JSONata expression to apply more complex functions, including the use of regular expressions; for example:
    {{$substringBefore($substringAfter(name, "Name: "), ", Email:")}}

    adds John Smith to the target field if the source field contains ... Name: John Smith, Email: ....

  • If a JSONata expression is not valid, an error message is displayed below the target field; for example:
    JSONata expression: ?{{$uppercase(Department)}
    Use '}}' to end an expression
    
Function Description Example
length(field) Returns the number of characters in the source field. You can get the number of characters in a name. For example:

{{$length(Last Name)}}

adds 3 to the target field if the source field contains Doe.

lowercase(field) Convert the source field to lower case. You can convert a name to lower case. For example:

{{$lowercase(Last Name)}}

adds doe to the target field if the source field contains Doe.

replace(field, pattern, replacement [, limit]) Finds occurrences of pattern within the source field and replaces them with replacement. The pattern parameter can either be a string or a regular expression (regex). The replacement parameter can either be a string or a function. The optional limit parameter, is a number that specifies the maximum number of replacements to make before stopping.

For more details and examples, see the JSONata documentation

For example:

{{$replace(Name, "Jane", "Ms")}}

adds Ms Doe to the target field if the source field, Name, contains Jane Doe.


{{$replace(Name, /(\w+)\s(\w+)/, "$2, $1")}}

adds Doe, Jane to the target field if the source field, Name, contains Jane Doe.

substring(field, start[, length]) Add the substring of a source field that starts at position start (zero-offset). If length is specified, then the substring will contain the maximum length characters. If start is negative then it indicates the number of characters from the end of the source field. You can extract the first 3 characters of a name. For example:

{{$substring(Name, 0, 3)}}

adds Jan to the target field if the source field, Name, contains Jane Doe.

substringAfter(field, “string“) Add the part of a source field that occurs after a given string of characters. You can extract the mail domain from an email address, by using ‘@’ as the delimiting character. For example:

{{$substringAfter(Email, "@")}}

adds email.com to the target field if the source field, Email, contains Jane Doe@email.com.

substringBefore(field, “string“) Add the part of a source field that occurs before a given string of characters You can extract the name from an email address, by using ‘@’ as the delimiting character. For example:

{{$substringBefore(Email, "@")}}

adds Jane Doe to the target field if the source field, Email, contains Jane Doe@email.com.

trim(field) Normalizes and trims all whitespace characters in the source field by applying the following steps:

  • All tabs, carriage returns, and line feeds are replaced with spaces.
  • Contiguous sequences of spaces are reduced to a single space.
  • Trailing and leading spaces are removed.
You can trim a string field. For example:

{{$trim(Description)}}

adds Hello World to the target field if the source field, Description, contains Hello \n World .

uppercase(field) Convert the source field to upper case. You can convert a name to upper case. For example:

{{$uppercase(Last Name)}}

adds DOE to the target field if the source field, Last Name, contains Doe.

How do I add conditional logic to a flow?

If you want your flow to do different things depending on the data that it receives from applications in your flow, you can add some conditional logic to your flow in the form of an “IF” node; in fact, you can add up to 10 IF nodes to a flow.

For example, say you’ve created some events in Eventbrite. You might want to treat data differently for particular events. When someone signs up for one event, you might want to add them to your CRM system as a lead. But when someone signs up for another specific event, you might want to add them to a mailing list. And if they sign up for any other event, you might not want to do anything with that data. So after you’ve added the Eventbrite “New attendee” event to trigger your flow, you can add an IF node, as shown in the following example.

The conditional logic says that if someone signs up to one of the events with the specified IDs, they’re either added as a lead in Salesforce or a subscriber to a list in MailChimp. But if they sign up to any other event, the flow won’t process any data for that sign-up, and a message that you define is written to the logs. For the actions that do continue, you can pass data from from the IF node to the rest of your flow by creating an output schema, then populating the fields with data for each branch of your IF node. When you add an action after the IF node, you can populate the target fields with data from the IF node.

In this example, when someone signs up to an event other than the 2 that you’re interested in, we’ve chosen to exit the flow with a success message, indicated by the HTTP status code “200”. No error has occurred; you just don’t want to do anything about this sign-up. Alternatively, you can choose to end a branch with an error message, indicated by the HTTP status code “400”. This situation is then flagged as an error in the logs.

You can also use an If node to perform different actions depending on the response code that you get for a previous action in your flow. For an example, see the tutorial Creating an event-driven flow that updates or creates a contact in Salesforce and updates Asana whenever you receive a form in Wufoo.

This example is very simple, but you can handle more complex processing by adding more actions to your IF and ELSE branches or by adding more conditions. You can also add nested IF nodes by adding more IF nodes to branches.

Things to consider:

  • If you add an action after an IF node in a flow, you can choose to exit the flow at the end of as many branches of the IF node as you like, as long as at least one branch continues processing so that data is passed to the target application. If the IF node is at the end of an event-driven flow, the flow can exit on all branches.
  • The custom message that you define must be a maximum of 128 characters long.
  • If you exit the flow at the end of a branch, you cannot define output data for that branch.

For step-by-step instructions for using an If node, see the tutorial Adding conditional logic to a flow.

How do I parse a JSON string that is returned in a flow into a JSON object for subsequent use?

When creating event-driven or API flows in App Connect, you typically use the response or output from an event, action, or logic node as input in a subsequent action by mapping the fields. In certain cases where data is returned using JavaScript Object Notation (JSON), the data is provided as a string written in JSON format. To map this data in a subsequent action, you must first use App Connect’s built-in JSON Parser to convert the data into a JSON object that represents the string.

The schema that the JSON Parser generates is formatted as a standard set of comma-separated key/value pairs that are surrounded by curly braces {}. The keys are defined as strings, and their values can be one of the following valid JSON data types: string, number, object, array, boolean, or null. Once generated, these keys will be included in the list of fields that are available for mapping when you click Insert a reference Insert a reference icon in a subsequent action.

Although the JSON Parser can be used to parse JSON strings from various applications, a typical use case involves using an HTTP invoke action to make a GET, POST, PUT, PATCH, DELETE, or HEAD request that returns a response from an HTTP endpoint.

The following example depicts an HTTP invoke action within a multi-node flow. Here, a GET call is being made to an HTTP Client Testing Service at http://httpbin.org.

low with a JSON Parser node: HTTP field selections

To make the response headers and response body available for mapping in a subsequent action, you must insert a JSON Parser node before adding the action, and then use the node to define the data that you want to parse, and to generate valid JSON schema. You can insert and configure the node by following these steps:

  1. Click the (+), go to the Logic tab, and then click JSON Parser.

    Flow with a JSON Parser node: selecting the JSON parser

  2. Use the JSON Input field to specify which data from the previous action or event should be parsed.

    JSON Input field

    Considerations for completing the JSON Input field:

    • You can map to fields that are shown in the list of available inputs (generally accessible by clicking Insert a reference Insert a reference icon). For example:
      JSON Input entry showing a mapped field
    • You can combine text with mapped fields. For example:
      JSON Input entry showing a combination of text and mapped fields
      JSON Input entry showing another combination of text and mapped fields
    • When resolved, the entry in the JSON Input field must produce valid JSON. To prevent runtime errors, any mapped field that you include from a preceding event or action must have a value that transforms into valid input. Based on the data type of the mapped field, you might also need to enclose it in double quotation marks or curly braces {}. For example:
      • If the Response body for a previous HTTP action was returned in JSON format as {"name":"Bob", "age":"99"}, a JSON Input entry of {"responseBody": Response body} will resolve to the following valid JSON:
        {"responseBody": {"name":"Bob", "age":"99"}}
      • If the Response body for a previous HTTP action was returned in plain text as Blob, a JSON Input entry of {"responseBody": Response body} will produce invalid JSON:
        {"responseBody": Blob}
        To make the JSON valid, the JSON Input entry must be specified as {"responseBody": "Response body"} – that is, Response body must be enclosed in double quotation marks. The JSON would be considered valid even if no response was returned because the JSON Input entry would resolve to {"responseBody": ""}.
      • If the Request headers (JSON format) field for a previous HTTP action was left blank, a JSON Input entry of Request headers (JSON format) will resolve to an empty value.
      • If the Request headers (JSON format) field for a previous HTTP action was left blank, a JSON Input entry of {"headers": Request headers (JSON format)} will produce invalid JSON:
        {"headers":}
        To make the JSON valid, the JSON Input entry must be specified as {"headers": {Request headers (JSON format)}} – that is, Request headers (JSON format) must be enclosed in curly braces.

  3. Expand the Output Schema section and use the Example JSON field to specify sample JSON that you expect to be returned (and which should be converted to a JSON object).

    The following example shows sample JSON from a GET call to the HTTP Client Testing Service mentioned earlier (http://httpbin.org/get).

    Example JSON field

    Considerations for completing the Example JSON field:

    • You can copy a sample response returned by a web server or API call for example, and paste it into this field.
    • You can enter a JSON string directly into this field. For example:
      {"name":"Bob","age":"99"}
    • The Example JSON field accepts a maximum of 16,000 characters. This facility is provided for smaller API responses only because schema generation can be resource intensive and result in performance issues.

      For larger responses, external tools are available which you can use for schema generation if required. Once generated, you can then paste the schema directly into the JSON Schema field (shown in the next step).

  4. To convert the “Example JSON” into a JSON object, click Generate Schema. You can see the result in the JSON Schema field.

    Flow with a JSON Parser node: generated JSON schema

    Tip: You can alternatively bypass the schema generation step and simply enter valid schema directly into the JSON Schema field.

When you add another target application and corresponding action to the flow, you should be able to see the keys in the JSON schema as fields that you can map to.

For a scenario that describes an end-to-end flow that includes a JSON Parser node, see Using the JSON Parser to convert the response from an HTTP call for subsequent use in a flow.

How do I parse CSV text that is returned in a flow into a JSON object for subsequent use?

When creating event-driven or API flows in App Connect, you can use comma-separated values (CSV) that are stored in a file or within some other content to provide input to an action in the flow. The CSV content must be in plain text and can contain one or more data records in a tabular format. A comma (,) is the only supported delimiter for the data fields. As such, if the value in a field includes a comma, that value must be enclosed in double quotation marks (“”).

To enable you to map CSV data returned by an event or action to a subsequent action in a flow, App Connect provides a built-in CSV Parser, which transforms a CSV data string into a JSON object. The schema that the CSV Parser generates is formatted as a standard set of comma-separated key/value pairs that are surrounded by curly braces {}. The keys are defined as strings, and their values can be one of the following valid JSON data types: string, number, object, array, boolean, or null. Once generated, these keys will be included in the list of fields that are available for mapping when you click Insert a reference Insert a reference icon in a subsequent action.

The following example depicts a section of a multi-node flow that uses a Box Retrieve file action to specify the identifier of a CSV file whose contents you want to retrieve and parse.

Box Retrieve file action

To make the CSV data available for mapping in a subsequent action, you’ll need to insert a CSV Parser node before adding the action, and then use the node to define the data that you want to parse, and to generate valid JSON schema. You can insert and configure the CSV Parser node as follows:

  1. Click the (+), go to the Toolbox tab, and then click CSV Parser.

    Flow with a CSV Parser node: selecting the CSV parser

  2. Use the CSV Input field to indicate which data from the previous action or event should be parsed. You can map to fields that are shown in the list of available inputs (generally accessible by clicking Insert a reference Insert a reference icon). Typically, this would be the contents of a CSV file or some other CSV content in a body of text. In the following example, we are mapping to the contents of a file in Box.

    CSV Input field

  3. Expand the CSV Parsing Options and Data Schema section and use the Example CSV field to specify plain-text data that represents a sample of your CSV content.

    The following example shows sample data from a CSV file that was exported from an IBM API Connect Management server (to Box), and which contains API event data that is associated with one of the Analytics dashboards. Let’s assume that you want to parse this data so you can use Gmail or Slack to send pertinent analytics information about your APIs or apps to your executives.

    Example CSV field

    Considerations for completing the Example CSV field:

    • You can select and copy one or more rows from your CSV content, and paste them into this field. If the CSV content contains column headers that you want to define as keys in the JSON schema that App Connect generates, be sure to include the header row in your selection. Note that only the first row is used to analyze the CSV format of the schema.
    • The Example CSV field accepts a maximum of 16,000 characters.
  4. If you’ve included a CSV header in the sample CSV, select the First row of the CSV data is a header check box to indicate that the column headers should be parsed as keys in the generated schema.

    First row of the CSV data is a header check box

  5. To convert the sample CSV into a JSON object, click Generate Schema. You can see the result in the JSON Schema field.

    Flow with a CSV Parser node: generated JSON schema

    • If you selected the First row of the CSV data is a header check box, the defined column headers are parsed as keys that you can map to later.
    • If you did not select this check box, a generic series of keys labelled field1, field2, ..., fieldN are generated for use. You can overwrite these generic keys to specify alternative header strings if required.

    You can alternatively bypass the schema generation step and simply enter valid schema directly into the JSON Schema field. You can also modify the data types of the keys by updating the values of the “type” attributes for the properties. For example, you can change "type": "string" (shown in the following example) to "type": "number".

        ...
        "properties": {
          "bytes_received": {
            "type": "string",
            "minLength": 1
          },
        ...
    

When you add another target application and corresponding action to the flow, you should be able to see the keys in the JSON schema as fields that you can map to.

What about advanced mode editing?

In the default edit view for an action, some applications have fields that are hidden because they are not needed for general use cases. For more advanced use cases, you can switch to advanced mode editing which provides extra capabilities:

  • You can edit fields that are hidden in the default edit view.
  • You can apply mapping and transform functions to dynamically set the value of fields that would be selected in the default edit view. For example, instead of selecting an Asana project in which to create a task you might use a preceding Retrieve action in the flow to dynamically retrieve a record from another application and then map that to the ID field of the project for the Create Task action.

To switch between default editing and advanced mode editing, use the context menu for the action; for example, when in the default edit view, select Switch to advanced mode:

Switch to advanced mode editing option of an action’s context menu

Considerations:

  • If you select a field in advanced mode, you are shown the description and data type for the field, and sample data.
  • If you specify a value for a field that is only in advanced mode, the value will be lost if you exit this mode. If you need to keep the values for such fields, you must stay in advanced mode editing for the action.
  • When in advanced mode editing, you can switch to the default edit view from the context menu. The ‘Exit advanced mode’ option also shows a message warning that you will lose any values for fields that are visible only in advanced mode.

How do I edit an existing or draft flow?

To change the configuration of an existing flow or complete a draft flow, complete the following steps:

  1. Click Dashboard in the App Connect header and locate the flow that you want to edit.

    If the flow is shown as running, stop the flow from its flow menu.

  2. To edit the flow, either select the body of the flow tile, or in the flow’s menu select Edit flow.
    Flow menu options to manage or edit the flow
  3. You can change the apps, the events and actions, the fields that are matched, and the name of the flow. Changing the name of the flow does not create a new copy of the flow.

How do I start or stop a flow?

To start or stop a flow, complete the following steps:

  1. Click Dashboard in the App Connect header and locate the flow that you want to change.
  2. In the flow’s menu, select the action that you want to take:
    Flow menu options to manage or edit the flow

How do I delete a flow?

To delete a flow, complete the following steps:

  1. Click Dashboard in the App Connect header, and then locate the flow that you want to delete.

    If the flow is shown as running, stop the flow from its flow menu.

  2. In the flow menu, select the option to delete the flow.
    Flow menu options to manage or edit the flow

How do I export and import flows?

You can share event-driven or API flows with other App Connect users who want to configure identical or similar integrations. Flows are shared using App Connect’s export/import functions.

To share a flow, you must first export it from the Dashboard. The exported configuration is saved in a .yaml file, which other users can then import.

Exporting a flow

When you export a flow, all its configuration settings, other than your connection details for the integrating apps, are preserved in the exported definition.

To export a flow:

  1. From the Dashboard in App Connect Designer, locate the event-driven or API flow, open its menu, and then click the Export option. The flow can be in a Stopped or Running state. The following example shows the menu for an event-driven flow.

    Selecting the Export option from a flow's menu

    Tip: Avoid exporting flows with an Incomplete status or configuration errors that will need to be investigated after an import. Errors that are related to your account credentials for example, do not have an effect on the exported flow.

  2. If prompted, choose to save the file, which is named flow_name.yaml by default; for example, Create an incident.yaml. The file might also be automatically downloaded depending on your browser. The file is saved to the download location that’s configured for your browser.
  3. Make the exported .yaml file available to other users. For example, you can copy the file to a network file system directory or use other methods like email. You can also upload the file to a server with a public HTTP or HTTPS URL.

    Restriction: The URL must point to a public network that anyone can freely connect to without login credentials; for example, a public GitHub repository or GitHub Pages site.

    If the file is hosted on a public GitHub repository, ensure that you provide the “raw” URL for sharing. To do so, navigate to the .yaml file location; for example:
    https://github.com/username/myrepo/blob/master/Create%20an%20incident.yaml
    Then click Raw to obtain the “raw” URL; for example:
    https://raw.githubusercontent.com/username/myrepo/master/Create%20an%20incident.yaml

Importing a flow

You can import event-driven or API flows from other users, or from another App Connect environment; for example, from a test to a production environment. You import flows using .yaml files that contain an exported flow’s definition.

Because connection details are not saved with an exported flow, you’ll need to set up your own accounts for each app in the flow if you do not already have one. You’ll also need to connect App Connect to each of these accounts before or after you import the flow, and validate the flow’s settings, in order to start and run the flow. You can connect from the Applications page or while within the flow or API editor. For information about the connection details required, see the How to page for an app.

To import a flow:

  1. From the Dashboard in App Connect Designer, click New, then click Import flow to open the “Import flow” panel.
  2. Specify a file or URL location for the .yaml file that you want to import:
    • If stored on a local or network file system directory, select the file using either of these methods. (If the file’s on a network directory, you might need to first connect to the drive.)
      • Click within the Select file boxed area to open a file browser and locate the .yaml file.
      • Drag and drop the file from its location in an open file browser into the Select file area.

        You’ll see the file name in the boxed area.

        Name of file to be imported

    • If stored on a server that is accessible from a URL, enter a valid fully qualified URL for the .yaml file in the Flow URL field. This must be a public URL that does not require login credentials. Only the HTTP and HTTPS transports are supported.

      Examples:
      http://www.example.com/path/Create%20an%20incident.yaml
      https://raw.githubusercontent.com/username/myrepo/master/Create%20an%20incident.yaml

  3. Click Import.

    The imported flow opens within the flow editor (for an event-driven flow) or the API Define tab (for an API flow), and adopts the flow name of the exported flow. If you already have an existing flow with an identical name on your Dashboard (for example, Create an incident), the imported flow is renamed by appending _n to its name, where n is a number starting from 1 (for example, Create an incident_1).

    The following example shows an imported event-driven flow within the flow editor:
    Imported flow in the flow editor

    The following example shows the Define tab for an imported API flow:
    Imported flow for an API

  4. For an event-driven flow, validate the settings for each node in the flow:
    1. Connect to your account for each app in the flow if necessary. You can connect from the flow editor by clicking the node for each app, and then clicking Connect if shown. You can then follow the prompts to specify the account credentials.
    2. Examine the field selections for each node in the flow editor and update them as required.
    3. Click Exit and switch on to start the flow.
  5. For an API flow, validate the settings for each model:
    1. From the Define tab, review and update the properties as required.
    2. Edit the flow for each operation and update the settings as required. You’ll need to ensure that App Connect is connected to your account for each app in the flow.
    3. After configuring each operation, click Done.
    4. When you’ve validated all your models and operations, start the API by selecting Start API from the flow menu.

      Start API option

Troubleshooting tips for exporting and importing flows

  • To help prevent potential errors while your shared flow is being imported, consider making the name of the flow you’re exporting shorter if it’s 39 or 40 characters long and you think it’s generic enough to have been used by someone else in their own Dashboard. If a flow being imported has an identical name to an existing flow in a Dashboard, the characters _n (where n is a number starting from 1) are appended to the imported flow’s name to make it unique. If the flow name is more than 38 characters long, the extra characters will push the flow name over it’s 40-character limit, which then causes the import to fail. The user importing your flow will then have to rename their existing flow before attempting to import again.
  • If you can’t switch on your imported flow, you need to ensure that you’ve clicked every node in your event-driven flow, or every node in every operation in your API flow. This provides a way for App Connect to check your connection for that flow and validate the flow.

Connecting applications

Generally, connecting applications in App Connect Designer uses the same straightforward exercise of creating an event-driven flow or creating flows for an API, as described in the general guide How to connect apps – general use of App Connect Designer.

Some apps have special prerequisites, considerations, or example use cases; for these apps we are developing app-specific “How to” guides. For “how to” guides, see the main “how to” page.

For other information about connecting applications, see below:

What should I know about invoking an HTTP method?

  • The supported HTTP methods are: GET, POST, PUT, PATCH, DELETE, or HEAD.
  • The specified HTTP URL must be fully qualified.

    Examples:
    http://www.example.com/
    https://host_name:port/path

  • Request headers must be specified as a JSON (object) representation of header field name/value pairs that are comma separated and collectively enclosed within opening and closing braces. The required format is:
    {“header_field1”: “value1”, “header_field2”: “value2”, … , “header_fieldN”: “valueN”}

    Example:
    {“Content-Type”: “text/html”, “Keep-Alive”: “300”}

What should I know about connecting to applications that are on a private network?

  • You use the IBM Secure Gateway to connect App Connect to applications that are available on a private network (for example, your company network or a private cloud). For more information about the IBM Secure Gateway, see IBM Secure Gateway.

  • From App Connect, you can download and install the IBM Secure Gateway client, as outlined below.

    Note: You cannot install the IBM Secure Gateway client on a mobile phone or tablet.

    Before you create a flow
    From the App Connect menu, select Networks, click Connect a network, and follow the steps to download and install the IBM Secure Gateway client, and create a network connection. When you create a flow, you can select this network connection when you configure the account details for an application that is on the private network. You can also select the network connection when you define a custom application.
    While you are creating a flow
    Select the applications that you want to connect, and the event and action you want to use. When you are prompted to select the accounts for each application, click Connect to your network for any application that is on a private network. Follow the steps to download and install the IBM Secure Gateway client, and create a network connection. The network connection is selected for the application that is on the private network, and you can continue configuring your flow. You can use the same network connection when you define custom applications, or create flows that use other applications that are on the same private network.
    While you are defining a custom application
    Click Connect to a new private network. Follow the steps to download and install the IBM Secure Gateway client, and create a network connection. The network connection is selected, and then you can continue configuring your application. You can use the same network connection when you define other custom applications, or create flows that use applications that are on the same private network.

Note: You must set an access control list before you can connect to applications on a private network via the IBM Secure Gateway, see IBM Secure Gateway – Access control list

For a step-by-step example of how to configure a private network, see Tutorial: Configuring a private network

What can I do if my connection to an application is broken?

When you configure App Connect to connect to an application like Gmail, a notification that you have authorized App Connect to use your account details is recorded in your account profile for that application. For example, if you provide App Connect with your Google credentials, so that App Connect can connect to your Gmail account, you can see this authorization specified in your Google account (under Sign in & security > Connected apps and sites). If you remove the authorization from your Google account, App Connect can no longer connect to your Gmail account and any flows that use Gmail as a target application will become inactive.

To reconnect App Connect to an application where the authorization has been removed, go to the Applications page in App Connect. There, you can choose either to update the account, or to remove the account, and then add the account again (or add a new account).

Account details

I’ve forgotten my user ID. How do I find it?

Your user ID is the email address that you used to register for App Connect. If you have forgotten the email address that you used, click IBMid help desk, and locate the contact details for your country.

I’ve forgotten my password. How do I reset it?

Click Forgot password to go to the IBMid registration page and reset your password.

How do I change my password?

Click Change password to go to the IBMid registration page and change your password.

How do I change my email address?

Click Profile to go to your IBMid profile. Log in and change your email address in your profile.

Note: Your IBMid is still the same as the email address that you used when you registered for App Connect. Changing your email address does not change the name of your IBMid.

What features are available on each pricing plan?

For details of the different pricing plans and the features that are available, see the following:

How can I check my account usage?

From the App Connect header, click the account icon (). A panel displays the following information:

  • Your current pricing plan (with a link to where you can upgrade the plan if you are on the Free plan).
  • The number of flows that you have running.
  • If you are on the Free plan, the number of flows that you are entitled to run.

Example of Account Information panel:

I have a monthly quota of ‘actions’ but what counts as an action?

An action is any task that is initiated by a flow. For example, the update of an application or the sending of an email.

Note: Only successfully completed actions count towards your monthly quota. For example, if an event occurs but the flow is unable to complete the action, the attempted action does not count towards your quota.

How do I upgrade my subscription from a free plan to a charged plan?

To increase your allowed actions per month and the number of flows that you can run, see the following:

  • App Connect on IBM Cloud: The “Other licensing plans: Personal” tab on the Cloud Marketplace. Purchase the Personal plan with the same IBMid that you used to sign up to the free plan. The next time that you log in to App Connect, any flows that you created when you were on the free plan are still available and in the same status (on, off, or in draft).
  • App Connect on IBM Bluemix: The Plan view on your App Connect service page in IBM Bluemix. Select the Professional plan option, and then click Upgrade.

How do I change my payment method or cancel my subscription?

Contact IBM App Connect support by clicking Contact Us in the menu in the App Connect header.

Trademarks

IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the web at Copyright and trademark information.

17 comments on"Frequently asked questions about IBM App Connect"

  1. Hi, I am using app connect with Salesforce as an action(I am also new to Salesforce) and I have problem filling in a lookup field.
    When I use Create Opportunity acntion of Salesforce, I need to fill in the Account name field, which is a lookup field. Then the app connect flow gets an error because although I input the acount name into the field, Salesforce may not recognize that.
    How to solve the lookup field fill-in issue in App connect? Thanks!

  2. Hi,

    We wanted to migrate boomi integrations to appconnect. Is there any easier way to migrate them to appconnect instead of rebuilidng the integrations from the scratch?

    • Ian_Larner July 24, 2017

      @Ismail,
      There’s no one-to-one migration by copy from Boomi to IBM App Connect, and teams who moved projects from Boomi have responded that no migration tool would have helped their use case. Migration is an opportunity to review the original project to improve/simplify the design, eliminate issues, and exploit capabilities in IBM App Connect. Migrating by copy is usually more costly and persists poorer integration than reviewing the design and creating anew.

      Teams who migrated their projects off Boomi created new projects from scratch.

      Regards, Ian

  3. How do I connect to Data endpoints like JDE?

    • Ian_Larner April 20, 2017

      David,
      For JD Edwards (JDE) specifically, the current connect alternatives are 1) in App Connect Professional Studio the JDE endpoint (the current JD Edwards presence on the App Connect Applications page https://appconnect.ibmcloud.com/applications/) or 2) in App Connect Designer a custom app with IBM Integration Bus use of the WebSphere Adapter for JDE.

      For other endpoints ‘like JDE’ – enterprise on-premise applications – current connect options are similar.

      For JDE, and other endpoints ‘like JDE’, App Connect Designer has a fast-growing list of connectors that we are working to deliver. The on-premise application we started with is SAP, which we have delivered in App Connect Designer. We have plans for adding connectors like JDE to App Connect Designer in the coming months.

  4. Dear all

    I have the following case and I would appreciate any comment that could help.

    I have created an app by using IBM Domino Designer and I would like to connect that app to Slack.

    The logic of the app is very simple:
    1- You press a button on IBM Notes Client
    2- After that a message should be sent to one of Slack channel says [Test OK]

    The button on IBM Domino Designer is programmable (JavaScript, LotusScript could be used to program it)

    Any help would be appreciated
    Thank you very much in advance

    Best Regards

    Hattan

    • Karen Cameron October 20, 2016

      Hello Hattan,
      We don’t have a Domino connector in App Connect yet, so you can’t currently use App Connect to connect your Domino application to Slack. You might have noticed that you also have the ability to connect to a custom application in App Connect, but at the moment, you can only connect a custom application that is based on an IBM Integration Bus message flow.
      I hope that answers your question.
      Regards,
      Karen

  5. Timm Bryant October 12, 2016

    How do I edit an existing account for the Salesforce connector?

    • Karen Cameron October 18, 2016

      Hello Timm. Currently, you can have only one account connected to each application. If you want to connect a different account, or change the details of your existing account, you have to delete any flows that are using that account, delete the account, then re-create it. This is a known limitation that we are planning to remove in the future.

  6. The “What Transforms…” box does not fold away when I click on the arrow.

    • Please could you tell me what browser and operating system you are using? I don’t see this problem with Firefox or Chrome on Windows, but there might be other combinations of browser and operating system for which the open/collapse control is not working.

Join The Discussion

Your email address will not be published. Required fields are marked *