Skip to content

Advanced Integrations

Advanced Integrations are for when you need to go beyond IONFLOW’s pre-configured applications. If the app you need doesn’t have a dedicated node (Grapp), or if you want to connect with your own or custom API, this section shows you how.

With the HTTP Request node, the commands and expressions system, and the Mapper, you can integrate virtually any service that has a REST API.

  • Developers: Who need to integrate custom or non-standard APIs
  • Power Users: Who want to transform data with advanced expressions
  • Integration specialists: Who configure complex connections with multiple services

Use advanced integrations when:

  • ❌ The application you need doesn’t have a Grapp (dedicated node) in IONFLOW
  • ❌ You need an operation that the existing Grapp doesn’t support
  • ✅ You want to connect with your own REST API (company API)
  • ✅ You need to transform complex data before sending it to another service
  • ✅ You want to combine data from multiple sources in a single operation

The HTTP Request node is your universal tool for connecting with any REST API. Configure:

FieldDescription
URLThe full URL of the API endpoint
MethodGET, POST, PUT, PATCH, DELETE
HeadersCustom HTTP headers (e.g., Authorization, Content-Type)
BodyData to send (JSON, form-data, raw)
Query ParamsURL parameters (?key=value)
[Scheduler every 5 min] → [HTTP Request GET to api.example.com/data] → [Mapper transforms response] → [Persistent Data Save]

For APIs requiring authentication, add the corresponding headers:

  • Bearer Token: Authorization: Bearer your_token_here
  • API Key: X-API-Key: your_api_key
  • Basic Auth: Authorization: Basic base64(user:password)

You can use command language functions to build dynamic headers: {{toBase64(user + ":" + password)}}

The Mapper node lets you restructure data visually. It’s useful when:

  • The source API returns data in a different format than the destination API needs
  • You need to rename fields, extract nested values, or combine data
  • You want to filter unnecessary fields before passing data to the next node

Within any configuration field, you can use IONFLOW’s command language to transform data:

// Concatenate fields
{{$1.first_name}} + " " + {{$1.last_name}}
// Convert to uppercase
upper({{$1.email}})
// Filter an array
filter({{$1.orders}}, .total > 100)
// Format date
date({{$1.date}}, "2006-01-02")

For more complex transformations, IONFLOW supports multi-line expressions with variables:

let name = {{$1.first_name}} + " " + {{$1.last_name}};
let email = lower({{$1.email}});
let is_vip = {{$1.total_purchases}} > 1000;
{
"full_name": name,
"email": email,
"tier": is_vip ? "VIP" : "Standard"
}

See Command Definitions for all available functions (strings, arrays, dates, numbers, etc.).

When integrating with external APIs, respect their usage limits:

  • Use the Timer node to add pauses between requests
  • Configure the Timer with an appropriate delay (e.g., 1 second between requests)
  • If you receive a 429 (Too Many Requests) error, increase the delay
[Iterator loops list] → [Timer 1s] → [HTTP Request] → [Process result]

To verify your integrations are working correctly:

  1. Use Dev (Preview) mode to see data at each step
  2. Check the Execution History to detect errors
  3. Inspect Input/Output data for each node in the timeline
ErrorCauseSolution
”404 Not Found”Incorrect URL or non-existent resourceVerify the URL in the API documentation
”401 Unauthorized”Expired token or incorrect credentialsUpdate the token or credentials in the Authorization header
”429 Too Many Requests”Exceeded the API’s rate limitAdd a Timer node between requests to space out calls
”500 Internal Server Error”Error on the external API serverWait a few minutes and retry. If persistent, contact the API provider
”Empty response data”Incorrect Content-Type or unexpected responseVerify the Content-Type header and expected response format
  • REST API: HTTP-based application programming interface
  • Endpoint: Specific URL of a resource in an API
  • Header: Metadata sent along with the HTTP request
  • Payload/Body: Data sent in the request body
  • Rate Limit: Limit of allowed requests per time unit
  • Token: Temporary authentication code for API access
  • Commands - Complete transformation functions reference
  • Connections - Use pre-configured connections
  • Webhooks - Receive external API data in real-time