Skip to main content
Function nodes perform operations on data, make API requests, or interact with external systems. They are the core building blocks for implementing integration logic in flows. Many function nodes use Function Types to implement their logic. The configuration and behavior is defined by the corresponding function type.

Data Record Operations

These nodes operate on data records in external applications. Most of them map directly to function types.
Node TypeDescriptionFunction Type
list-data-recordsList all records from a data collectionList Data Records
find-data-record-by-idFind a single record by its IDFind Data Record By ID
search-data-recordsSearch for records using a query stringSearch Data Record
lookup-data-recordLook up a record by field valuesMatch Data Record
create-data-recordCreate a new data recordCreate Data Record
update-data-recordUpdate an existing data recordUpdate Data Record
delete-data-recordDelete a data recordDelete Data Record

Find or Create Data Record

Type: find-or-create-data-record Attempts to find a record by specified criteria. If no record is found, creates a new one. This is useful for upserting data.
findOrCreate:
  type: find-or-create-data-record
  name: Find or Create Contact
  config:
    dataSource:
      collectionKey: contacts
    lookupFields:
      email:
        $var: input.trigger.email
    createData:
      firstName:
        $var: input.trigger.firstName
      lastName:
        $var: input.trigger.lastName
      email:
        $var: input.trigger.email
    fieldMapping:
      key: contact-mapping
Configuration options:
  • dataSource – Specifies which Data Source to use
  • lookupFields – Fields to match when searching for existing records
  • createData – Data to use when creating a new record
  • fieldMappingField Mapping for the operation
Output: Returns the found or newly created data record:
{
  id: 'contact-456',
  name: 'Jane Smith',
  fields: {
    firstName: 'Jane',
    lastName: 'Smith',
    email: 'jane@example.com'
  },
  created: false  // true if record was created, false if found
}

Type: create-data-link Creates a Data Link between an object in your app and an object in an external app.
createLink:
  type: create-data-link
  name: Link Contact
  config:
    dataLinkTable: contact-links
    internalId:
      $var: input.trigger.internalContactId
    externalId:
      $var: input.createRecord.id
    direction: both
Configuration options:
  • dataLinkTable – The Data Link table to use (must be created first)
  • internalId – ID of the object in your app
  • externalId – ID of the object in the external app
  • direction – Link direction: export (internal → external), import (external → internal), or both
If a link already exists, it will be updated. Output: Returns the created or updated data link:
{
  id: 'link-789',
  internalId: 'internal-contact-123',
  externalId: 'external-contact-456',
  direction: 'both'
}

Type: find-data-link Finds a Data Link to get the corresponding object ID on the opposite side.
findLink:
  type: find-data-link
  name: Find Linked Contact
  config:
    dataLinkTable: contact-links
    internalId:
      $var: input.trigger.internalContactId
Configuration options:
  • dataLinkTable – The Data Link table to search
  • internalId – ID to look up (can be internal or external depending on direction)
Output: Returns the ID of the matching record on the opposite side, or null if no link is found:
{
  externalId: 'external-contact-456'
}
// or null if not found

Type: delete-data-link Deletes an existing Data Link.
deleteLink:
  type: delete-data-link
  name: Unlink Contact
  config:
    dataLinkTable: contact-links
    internalId:
      $var: input.trigger.internalContactId
Configuration options:
  • dataLinkTable – The Data Link table containing the link
  • internalId – ID of the linked object
Output: Returns confirmation of deletion:
{
  success: true,
  deletedLinkId: 'link-789'
}

HTTP Request Operations

These nodes make HTTP requests to APIs and external services.
Node TypeDescriptionFunction Type
api-request-to-external-appMake authenticated API requests to external appsAPI Request to External App
api-request-to-your-appMake API requests to your internal APIAPI Request to Your App
custom-http-requestMake arbitrary HTTP requests to any endpointHTTP Request

Code Execution

These nodes execute code and run predefined actions.
Node TypeDescriptionFunction Type
run-javascriptExecute custom JavaScript or TypeScript codeJavaScript
run-actionExecute a predefined actionRun Action

Integration Specific Operation

Type: integration-specific-operation Executes operations that are specific to a particular integration. These are pre-built operations provided by connectors.
specialOp:
  type: integration-specific-operation
  name: Send Email
  config:
    operationKey: send-email
    parameters:
      to:
        $var: input.findContact.fields.email
      subject: Welcome!
      body:
        $var: input.transform.emailBody
Configuration options:
  • operationKey – Key of the integration-specific operation
  • parameters – Parameters required by the operation
The available operations and their parameters depend on the specific connector being used. Refer to connector documentation for details. Output: Returns the result of the operation. Structure varies by operation:
{
  success: true,
  messageId: 'msg-123',
  // ... other operation-specific fields
}