# Using App Blocks

Once you have apps installed in your project, you can use their blocks to build automations.

### Step 1: Access App Blocks
[Section titled “Step 1: Access App Blocks”](#step-1-access-app-blocks)
 1. Open your flow in canvas view
 1. In left sidebar, click **Apps** tab
 1. Click on app installation you want to use

This displays all available blocks from that specific app installation.

### Step 2: Select Block Action
[Section titled “Step 2: Select Block Action”](#step-2-select-block-action)
When you click an app, a modal appears showing available **block types** - different actions or operations the app can perform.

**Examples of block actions:**

 - **Anthropic LLM app**: “Generate Message”, “Chat Completion”, “Text Analysis”
 - **Slack app**: “Send Text Message”, “Create Channel”, “Get Channel Info”
 - **AWS S3 app**: “Create Object”, “Get Object”, “List Objects”
 - **GitHub app**: “Create Issue”, “Get Repository”, “Trigger Workflow”

Each block type corresponds to a specific operation you want to perform with that service.

### Step 3: Configure Required Fields
[Section titled “Step 3: Configure Required Fields”](#step-3-configure-required-fields)
 1. Click **input socket** (top of block) to open configuration panel
 1. Configure all **required fields** - marked as mandatory and must be filled
 1. Set up any **optional fields** relevant to your use case

**Configuration Tips:**

 - Use JavaScript expressions for dynamic values: `outputs.previousBlock.fieldName`
 - Reference static resources: `ref("signal.myS3Bucket.arn")`

### Step 4: Test with Debug Events
[Section titled “Step 4: Test with Debug Events”](#step-4-test-with-debug-events)
Before connecting the app block to complete the flow, you can test it independently:

 1. Navigate to **Inputs → Debug** in block configuration
 1. Click **Send Event** to send test event to your block
 1. Review output to ensure block behaves as expected

### Alternative: Connect to Flow
[Section titled “Alternative: Connect to Flow”](#alternative-connect-to-flow)
If you prefer testing within complete flow:

 1. Connect app block’s input to appropriate trigger block
 1. Connect app block’s output to downstream processing blocks
 1. Trigger entire flow to test integration