---
name: bijection-actionlayer
description: "Evaluate and integrate the Actionlayer component with Bijection."
---

# Actionlayer

ActionLayer component for Bijection — run tasks on any website and get reactive status updates in your Bijection app.

- Package: @bijectionhq/actionlayer
- Category: AI & Agents
- Status: Preview
- License: Apache-2.0
- Bijection source (repository access required): https://github.com/bijectionhq/actionlayer/tree/6b66b49d7e1fbeaac0a024132a4fc7cf526c33d4
- Upstream: https://github.com/ActionLayer-io/actionlayer-convex/tree/02b7741acb312e51eb6398bc10f8f78c113ea188
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/actionlayer

## Get the source

Bijection repository access is required. Request access at https://bijection.com/contact.

```sh
git clone https://github.com/bijectionhq/actionlayer.git
cd actionlayer
git checkout 6b66b49d7e1fbeaac0a024132a4fc7cf526c33d4
```

## Before using this component

Read the package README at the recorded revision for setup, dependencies, and API examples. Upstream documentation describes the original package and may differ from the Bijection adaptation. This is a source candidate for evaluation. Catalog inclusion does not establish npm availability or runtime qualification. Check compatibility with your SDK and deployment before adoption. External providers run their own compute.

## Integration workflow

1. Read the source README and package manifest at the recorded revision.
2. Confirm the required SDK, dependency availability, and runtime compatibility.
3. Follow the component's documented setup and configuration. Never invent an npm install command from a catalog package name.
4. Keep credentials in the project's existing secret store.
5. Follow the project's execution rules for verification and report what was actually checked.

## Original upstream skill

The following guidance describes @actionlayer/convex. Its installation commands and APIs refer to the upstream package. Evaluate compatibility with the Bijection source separately.


# ActionLayer - the power to do everything

## Instructions

Use ActionLayer - the power to do everything to actionlayer streams real-browser task execution (bookings, form fills, checkouts) into your convex database so your ui updates reactively without polling. This Convex component integrates directly with your backend.

### Installation

```bash
npm install @actionlayer/convex
```

### Capabilities

- Execute browser-based tasks like bookings, signups, and form fills from Convex actions without managing browser infrastructure
- Receive reactive UI updates via Convex queries as task state progresses through its lifecycle, with no polling code required
- Handle human-in-the-loop interruptions when tasks need user input, then resume execution with a single reply call
- Keep component state isolated from your app tables while the scheduler-driven poll loop manages task lifecycle automatically

## Examples

### how to automate browser tasks from a Convex backend

ActionLayer provides a Convex component that lets you call actionLayer.startTask(ctx, { goal }) from a Convex action to execute tasks on real websites via a managed browser. Task status is written to a component-owned Convex table and streamed to your frontend through useQuery without any polling logic on your side.

### how to get real-time task status updates in Convex without polling

The @actionlayer/convex component uses the Convex scheduler to run a poll loop internally and writes state updates to its own table. Your frontend subscribes with useQuery(api.tasks.status, { ticketId }) and re-renders automatically as state moves through pending, completed, failed, cancelled, or blocked_on_user.

### how to handle user confirmation steps in an AI agent task

When ActionLayer needs additional input from the user, the task parks at the blocked_on_user state with the ask available in infoRequest and reason fields. You send the user's response back with actionLayer.reply(ctx, { ticketId, message }) and the task resumes automatically.

### how to book appointments or fill forms from a Convex AI agent

ActionLayer lets you pass a natural language goal such as 'Book a table for 2 at Lilia Brooklyn this Saturday around 7pm' to actionLayer.startTask inside a Convex action. ActionLayer operates a real browser end-to-end to complete the task and streams progress back into your Convex app reactively.

## When NOT to use

- When a simpler built-in solution exists for your specific use case
- If you are not using Convex as your backend
- When the functionality provided by ActionLayer - the power to do everything is not needed

## Troubleshooting

**Does ActionLayer modify my app's Convex tables?**

No. The @actionlayer/convex component stores all task state in its own component-owned table, leaving your app's tables untouched. Task records are scoped to the component and accessed through the generated components.actionlayer API reference.

**How does ActionLayer keep my Convex UI updated without polling?**

When you call actionLayer.startTask, the component schedules a Convex scheduler-driven poll loop that fetches task status from the ActionLayer API and writes updates to a component table. Because the data lives in Convex, any useQuery subscription to your status query function re-renders automatically on every state change.

**What states can an ActionLayer task be in?**

An ActionLayer task moves through the states: pending, completed, failed, cancelled, and blocked_on_user. The blocked_on_user state occurs when the task requires additional input from the user, such as a missing detail or a choice. The required information is surfaced in the infoRequest and reason fields of the task record.

**How do I cancel an in-flight ActionLayer task?**

You can stop a running task by calling actionLayer.cancel(ctx, { ticketId }) from a Convex action. This moves the task to the cancelled terminal state and stops the internal poll loop.

**What do I need to configure to use @actionlayer/convex?**

You need to install the package, register the component in convex/convex.config.ts using app.use(actionlayer), and add your ACTIONLAYER_API_KEY environment variable in the Convex dashboard under Settings then Environment Variables. After running npx convex dev, the components.actionlayer reference is available in your generated API.

## Resources

- [npm package](https://www.npmjs.com/package/%40actionlayer%2Fconvex)
- [GitHub repository](https://github.com/ActionLayer-io/actionlayer-convex)
- [Live demo](https://actionlayer.io)
- [Convex Components Directory](https://www.convex.dev/components/actionlayer/convex)
- [Convex documentation](https://docs.convex.dev)