Passing data between blocks
How OmniBlock output placeholders are named in Aimogen Pro, how to reference an earlier block, and which global placeholders are available.
Blocks communicate through placeholders. Getting the naming right is most of what makes a workflow work.
The naming rule#
Each block type declares one or more output placeholder prefixes. The placeholder you use is the prefix plus the block identifier:
prefix + block_idIf an ai_text block has identifier 2, its output is %%ai_text_2%%. If a dalle_ai_image block has
identifier 5, its output is %%dalle_image_5%%.
Note that the prefix is not always the block type name. dalle_ai_image produces dalle_image_,
stable_ai_image produces stability_image_, and crawl_sites produces both scraped_content_ and
scraped_content_plain_. The block reference lists the exact prefix for every type.
Blocks with several outputs#
Some blocks publish more than one value:
| Block | Placeholders |
|---|---|
crawl_sites | %%scraped_content_<id>%%, %%scraped_content_plain_<id>%% |
youtube_caption | %%video_caption_<id>%%, %%video_title_<id>%%, %%video_description_<id>%%, %%video_thumb_<id>%% |
youtube_video | %%video_url_<id>%%, %%video_embed_<id>%% |
save_post | %%created_post_id_<id>%%, %%created_post_url_<id>%% |
save_product | %%created_product_id_<id>%%, %%created_product_url_<id>%% |
post_import | %%post_id_<id>%%, %%post_url_<id>%%, %%post_title_<id>%%, %%post_content_<id>%%, %%post_excerpt_<id>%%, %%post_categories_<id>%%, %%post_tags_<id>%%, %%post_author_<id>%%, %%post_date_<id>%%, %%post_status_<id>%%, %%post_type_<id>%%, %%post_image_<id>%% |
nlp_entities_neuron | Nine placeholders covering titles, descriptions, headings, terms and ranges |
The save_post outputs are useful: a later block can email the URL of the post just created, or send it
to a social network.
Loop placeholders#
ai_text_foreach runs once per input line and exposes:
| Placeholder | Contains |
|---|---|
%%current_input_line%% | The line being processed |
%%current_input_line_counter%% | Its position, starting at 1 |
%%all_input_lines%% | Every line, for context |
Trigger placeholders#
Blocks that start a workflow expose the data that triggered it:
| Block | Placeholder |
|---|---|
webhook_fire | %%webhook_data_<id>%% |
ai_forms_omniblock | %%ai_forms_full_input_<id>%% |
ai_chatbot_omniblock | %%ai_chatbot_full_input_<id>%% |
Global placeholders#
Available in any block, regardless of what came before:
| Placeholder | Contains |
|---|---|
%%keyword%% | The keyword the workflow was invoked with |
%%current_date_time%% | Current date and time |
%%custom_html%%, %%custom_html2%% | Reusable HTML from Settings › Custom HTML |
%%random_sentence%%, %%random_sentence2%% | A random line from Settings › Random Sentences |
%%blog_title%% | Site title |
%%webhook_url%% | The webhook URL for this workflow |
%%all_omniblock_types%% | The list of available block types |
Spintax, [aicontent] and ordinary WordPress shortcodes also resolve inside block parameters. See
Placeholder reference and
Spintax and dynamic text.
Spreadsheet placeholders#
Workflows that load spreadsheet data expose cell-addressing placeholders:
| Placeholder | Selects |
|---|---|
%%xlsx_BLOCKID_ROW_COLUMN%% | A specific cell |
%%xlsx_BLOCKID_row_ROW%% | A whole row |
%%xlsx_BLOCKID_column_COLUMN%% | A whole column |
%%xlsx_BLOCKID_row_random%% | A random row |
%%xlsx_BLOCKID_row_random_check%% | A random row, with duplicate checking |
Debugging data flow#
A placeholder renders literally. Three usual causes: the identifier does not match, the prefix is wrong for the block type, or the referenced block runs after this one.
A placeholder is empty. The block ran but produced nothing. Check whether it was marked critical — a non-critical failure is silent.
Check what a block actually received by temporarily enabling
Don't Render OmniBlock Shortcodes under Settings › OmniBlocks.
Related#
Still stuck? Open a support ticket and include the diagnostics from Aimogen Pro › System & Logs › System Info.