> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getmembrane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Functions

Membrane Functions implement business logic inside Membrane Elements.

## Function Types

Functions can be implemented in one of the following ways depending on where the function is used:

### Core Implementation Function Types

* [Mapping](/docs/references/functions/function-types/mapping) – Transform input data using JSONata expressions without making API calls
* [REST API Mapping](/docs/references/functions/function-types/rest-api-mapping) – Map to REST API endpoints
* [JavaScript](/docs/references/functions/function-types/javascript) – Write custom code for maximum flexibility
* [GraphQL API Mapping](/docs/references/functions/function-types/graphql-api-mapping) – Map to GraphQL API endpoints

### Data Collection Action Function Types

* [list-data-records](/docs/references/functions/function-types/list-data-records) – List records in a data collection page by page
* [find-data-record-by-id](/docs/references/functions/function-types/find-data-record-by-id) – Find a record in a data collection by ID
* [search-data-record](/docs/references/functions/function-types/search-data-record) – Search data records by a query string
* [match-data-record](/docs/references/functions/function-types/match-data-record) – Find a data record with fields matching a query
* [create-data-record](/docs/references/functions/function-types/create-data-record) – Create a new data record
* [update-data-record](/docs/references/functions/function-types/update-data-record) – Update an existing data record
* [delete-data-record](/docs/references/functions/function-types/delete-data-record) – Delete a data record by id

### API Request Action Function Types

* [api-request-to-external-app](/docs/references/functions/function-types/api-request-to-external-app) – Make API requests to the external service
* [api-request-to-your-app](/docs/references/functions/function-types/api-request-to-your-app) – Make API requests to your internal API
* [http-request](/docs/references/functions/function-types/http-request) – Make arbitrary HTTP requests to any endpoint

### Code Execution Action Function Types

* [JavaScript](/docs/references/functions/function-types/javascript) – Run custom JavaScript/TypeScript code (includes `run-javascript` action type)

### Flow Node Function Types

* [run-action](/docs/references/functions/function-types/run-action) – Run predefined actions

### Special Function Types

* `not-supported` – Mark function as not supported by the external API
