// This module is included in the following assemblies:
// as_how-to-get-ready.adoc

[id='plan_{context}']
= Considerations for planning your integrations

Consider the following questions before you create an integration.

How do you want to trigger execution of the integration?

* Do you want to set a timer to trigger execution at intervals that you
specify?
* Do you want to send an HTTP request?
* Do you want to connect to an application to obtain data from?
** In that application, what triggers the action that obtains the data?
For example, an integration that starts by obtaining data from
Twitter might trigger on a Twitter mention.
** What are the data fields of interest?
** What credentials does {prodname} use to access this application?
* Do you want to publish a REST API service so that a client can invoke
a REST API call that triggers execution of the flow for an operation?
** Is the OpenAPI schema for the service already defined?
** If not, what operations will the service define?
 
To finish a simple integration:

* Is there an application that receives the data or do you want to send 
information to the integration's log?
* If you are sending data to an application, what action does the integration perform?
* What are the data fields of interest?
* What credentials does {prodname} use to access this application?

In a flow's set of steps:

* Do you need to access any other applications? For any other
applications that need to be accessed:
+
** Which application does the flow need to connect to?
** What action should the connection perform?
** What are the data fields of interest?
** What credentials should the connection use to connect to this application?

* Does the flow need to operate on the data between connections?
For example:
+
** Should the flow filter the data it operates on?
** Do field names differ between source and target applications? If they
do then data mapping is required.
** Does the flow operate on a collection? If it does, can the 
flow use the data mapper to process the collection or does the flow 
need to split a collection into 
individual records? Does the flow need to aggregate records into a collection?
** Would a template be helpful for outputting data in a consistent form?
** Do you want to send information about messages being processed to the
integration's log?
** Does the flow need to operate on the data in some customized way?

* Do you need to vary the execution flow according to the content 
of the integration data? That is, are conditional flows required?
