Finding Blocks
With more than 2,000 blocks, you find one by searching for what it does: right-click the canvas, choose Add new block and type the verb. This page shows the search techniques, the groups, how to read block names and a starter set per job.
Five places to search
| Where | What it finds |
|---|---|
| Add new block: right-click the canvas | Any block type, matched on block names, display names, groups and aliases. |
| Drag out of a pin into an empty area | Blocks similar in type to the pin you dragged from. Picking one connects it. |
Ctrl+F in a blueprint | Blocks and values within what you are working in. Clicking a result takes you to the block. |
⌘K on this site | The docs search covers blocks live: same names, groups and aliases, with links to each block's page. |
Block Search in the Studio side menu | Blocks across all your blueprints, handy for "where did I use that before?". |
Two habits make any of them faster:
- Search by verb. Blocks are named by what they do:
search,create,update,remove,get,set,convert,send,render. Start with the verb, not the noun. - Search by system. Prefix with the thing you're touching:
storage,http,redis,postmark,web,query,array,object,function.
Every block belongs to a group
Browse them in All blocks. The groups you'll live in most:
| Group | What's inside | Go there when |
|---|---|---|
web | Pages, templates, lists, actions | Building anything a user sees |
storage / query / mutations | Documents, search, filters, updates | Reading or writing data |
http connection / json | Endpoints, requests, responses | Building or calling APIs |
array / object | Convert, fields, transform | Transforming data between blocks |
condition / flow | Branches, conditions | Controlling execution |
function execution | Running functions, also from the queue | Structuring reusable logic |
redis | Cache get, set, delete and TTL | Speeding up expensive flows |
Integrations (postmark, discord, twilio, and more) | Third-party send and receive blocks | Talking to the outside world |
Block names follow a pattern
Type names are <system>_<action>_<subject>: function_search, query_bool_term_fields, httpconnection_set_json, mutations_set_custom_field. Once you read names that way, search takes less guessing: need to update a document? Something with update and document gets you function_update_document_mutations.
Display names are the friendly version shown on the canvas ("reply in JSON", "web render"); type names are what block pages are titled with and what the code view uses.
Know these blocks first, per job
| Job | Blocks to know first |
|---|---|
| Build a page | web_page, web_render, web_foreach, web_action, web_template, web_replace |
| Build an API | on_startup_register_uri_get / _post, trigger_custom_function, httpconnection_set_json, httpconnection_current_request |
| Read data | function_search, function_get_document, query_and, query_bool_term_fields, query_sort_field, storage |
| Write data | function_create_document_from_mutations, function_update_document_mutations, mutations_set_bp_field_multiple, mutations_set_custom_field |
| Transform data | object_new_fields, object_update_fields, array_map, array_convert_to_fielddefinitions |
| Handle errors | success and error out-pins, function_console_log, branch, condition_not_empty_value, web_errors |
| Background work | function_custom_execute_from_queue, schedule_repeating_event, storage_event |