# How to create an App with ION

## Getting Access to ION

If you don't already, you will need access to ION to build an App for it. There are a few options for you.&#x20;

* If you are building an integration for your organization, ask your admin to grant you access to your organization's ION sandbox.
* If you are building an integration for an external organization, you will need to ask the external organization to grant you access. See [#organization-settings](https://manual.firstresonance.io/features/application-settings#organization-settings "mention") for more details on how to get access to another organization's environment.

{% hint style="warning" %}
Please keep in mind Gov Cloud is restricted to US persons only. If you are a non-US person building an App for a Gov Cloud-compliant organization, we recommend using your ION sandbox and giving access to other domains as seen above.
{% endhint %}

{% hint style="info" %}
If a sandbox has not been created for your organization yet, please reach out to First Resonance. This request will be processed in a week.
{% endhint %}

## Permissions

Once you are in ION, you will need to be given access to various parts of the platform in order to develop what you need. An admin or a user with the right permissions will need to grant you access to those parts of the platform. See [role-based-access-control](https://manual.firstresonance.io/features/application-settings/role-based-access-control "mention") for those details and to help understand what aspects of ION you may need access to depending on the integration. Two places you will need permissions for is [api-keys](https://manual.firstresonance.io/api/api-keys "mention") and [webhooks](https://manual.firstresonance.io/api/webhooks "mention").

{% hint style="info" %}
The permissions at the time of API Key creation are the permissions the integration will have. See [api-keys](https://manual.firstresonance.io/api/api-keys "mention") for more details.
{% endhint %}

## Connection

You will need [access-tokens](https://manual.firstresonance.io/api/access-tokens "mention") to work with ION's API. The associated guide will explain how to use them to create your integration flows. Once you have tested out access tokens, we recommend using our [webhooks](https://manual.firstresonance.io/api/webhooks "mention") guide to create and test webhooks to understand their payload and how they can trigger your integration.

Once you are completely familiar with our API and Webhooks, we suggest developing the app in an iPaaS tool such as Boomi, Prismatic, or Informatica. These platforms will use version control, increase the development speed with their low code capabilities, and test the application before rolling it out to Production. However, you can choose a traditional programming environment (Python, Node.js, etc.).

## Flow Diagram

As you determine the details of the app, we recommend creating a flow diagram that lists the triggers, the steps, and the API calls you need to ensure you have the right permissions before getting started.

{% hint style="info" %}
As a rule of thumb, every unique mutation in ION has an associated permission with it. See [interactive-api-explorer](https://manual.firstresonance.io/api/interactive-api-explorer "mention") for more details. For event drive triggers, see [webhooks](https://manual.firstresonance.io/api/webhooks "mention").
{% endhint %}

In many cases, you will need to configure new attributes in ION as needed to represent all of the data for the integration flow. These are covered in the [custom-attributes](https://manual.firstresonance.io/features/custom-attributes "mention") section.

## Testing

Create a UAT document to ensure all of the edge cases are either manually tested or tested through a test suite automatically. Once you have covered all of the edge cases in your UAT, roll this out to production by creating a new instance of the app in the organization's production environment. You will need a new set of API keys and webhooks for the production environment.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://manual.firstresonance.io/api/how-to-create-an-app-with-ion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
