# What is a workflow block?
Workflow blocks are the core components of an integration in monday.com. They allow users to encapsulate triggers and actions so they can be used in app recipes, but also, inside the custom recipe builder in the automation center.
Before workflow blocks, users had to utilize entire recipes made in the app, but now, they can choose to employ a trigger or action made inside an app and combine it with any other block (trigger or action) from the automation center, creating the recipe of their choice and eliminating the need for the app to have the specific recipe the user requires.
Each workflow block contains some logic, such as a trigger condition (When an item is created in monday) or an action (create an item in my CRM). Every integration recipe is made up of two (or more) workflow blocks.
# Types of workflow block
There are two types of workflow blocks: **trigger** blocks and **action** blocks.
A trigger block is a rule (or event) that invokes your integration recipe. Triggers can be from Monday or an external system. Here are some examples:
When an item is created
Every 5 days
When an issue is created in JIRA
An action block comes after a trigger block and does something. Here are some examples of actions:
Create an item in Monday
Change a column value in Monday
Create a new record in a database
# Building a workflow block
The monday apps framework exposes functionality to help developers build their own workflow blocks. For example, when an action needs to run, your app will receive an HTTP request from a monday server.
Most of the workflow blocks will implement the following:
A recipe sentence to tell users what the block does
Input fields to define what data your block needs to run (optional)
Output fields to define what data your block sends to the next block (only for triggers)
Public endpoints for the monday apps server to send requests
Refer to our [Custom Triggers](🔗) and [Custom Actions](🔗) articles for full details on how to implement the different types of workflow block.
# How do I add my block to the custom automation builder?
The custom automation builder allows users to define their own automation recipes with a few clicks.
You can add your block to the custom automation builder by checking the "Enable to publish" option at the bottom of the block editor:
Most workflow blocks are compatible with the custom recipe builder. Your block will not work in the builder if:
It uses dynamic mapping
It uses dependencies
It is an action that contains two input fields of the same type, coming from the trigger (for example, two board fields)
Join our developer community!
We've created a <a href="https://community.monday.com/c/developers/8" target="_blank"> community</a> specifically for our devs where you can search through previous topics to find solutions, ask new questions, hear about new features and updates, and learn tips and tricks from other devs. Come join in on the fun! 😎