Function Types

Function Types Overview

Understanding the different types of functions available in bem

Hand off to an LLM

Functions are the core building blocks for data processing in bem. Each function type serves a specific purpose and has its own configuration requirements.

If you're coming from V1/V2 and looking for transform, analyze, or route, see V3 migration. Those types remain readable and callable; new functions should be created as extract or classify.

Available Function Types

TypePurposeKey Use Case
ExtractPull structured JSON out of documents, images, and media against a schemaInvoice processing, form extraction, receipt scanning, visual analysis
ClassifyDirect inputs down labeled paths based on contentDocument classification, workflow branching
SplitBreak multi-page documents into piecesMulti-document PDFs, batch processing
JoinCombine multiple inputs into one outputData aggregation, multi-source merging
EnrichSemantic search against collectionsKnowledge base lookup, context enrichment
ParseRender documents into a navigable structure of sections, entities, and relationshipsLLM-agent retrieval over a corpus, cross-document memory, RAG-free Q&A
Payload ShapingTranslate JSON data with JMESPath expressionsData mapping, format conversion
SendDeliver workflow outputs to a webhook, S3 bucket, or Google Drive folderPush to downstream APIs, mirror outputs to a data lake

Common Configuration

All function types share these base fields:

FieldTypeRequiredDescription
functionNamestringYesUnique identifier for the function (per environment)
typestringYesThe function type (e.g., "extract", "classify")
displayNamestringNoHuman-readable name for display in the UI
tagsstring[]NoTags for categorizing and organizing functions

Choosing the Right Function Type

  • Need to pull structured data out of a document, image, or media file? Use an Extract Function
  • Need to classify inputs and route them down different paths? Use a Classify Function
  • Have multi-document files to break apart? Use a Split Function
  • Need to combine multiple outputs? Use a Join Function
  • Need to add context from a knowledge base? Use an Enrich Function
  • Want LLM agents to navigate a corpus by sections and entities instead of fixed fields? Use a Parse Function
  • Want to reshape JSON without AI processing? Use a Payload Shaping Function
  • Want to deliver workflow outputs to a webhook, S3 bucket, or Google Drive folder? Use a Send Function

API Reference

On this page