Use this when a watched support channel needs a quick AI-written reply. The AI answer is stored as {ai_response}. A Reply or Embed block can send that value back to Discord. Configuration: Prompt: Answer this support question briefly: {message....; Model: fast.
Workflow Reference
Block Documentation
Learn the editor blocks by category, see what their fields mean, and use real editor setups as references for Discord bot workflows.
110 documented editor blocks. Search ranks block names and descriptions first, then matching fields, options, and examples.
1 blocks AI Chat Blocks that call the AI model, choose instructions, attach tool workflows, and store the answer for later steps.
action
AI Chat
action_ai_prompt
Calls AI Chat and stores the response in a workflow variable for later replies, embeds, records, or decisions. Can optionally call selected AI tool workflows attached to this bot. Use it when a workflow needs generated text, summarization, classification, or structured JSON. Store the result and send it with a reply, embed, record, or later condition.
Calls AI Chat and stores the response in a workflow variable for later replies, embeds, records, or decisions. Can optionally call selected AI tool workflows attached to this bot. Use it when a workflow needs generated text, summarization, classification, or structured JSON. Store the result and send it with a reply, embed, record, or later condition.
Properties
Prompt
prompt
Multi-line text
Prompt or instruction text sent to the user, AI model, or parser.
Instructions
context_mode
Selection
Chooses whether the AI instructions come from a preset, custom text, or a workflow variable.
Instruction preset
system_preset
Selection
Built-in instruction set used when Instructions is set to preset.
Custom system context
system_context
Multi-line text
Custom instructions that control how the AI block should behave.
System context variable
system_variable
Single-line text
Workflow variable containing AI instructions when Instructions is set to variable.
Model
model_tier
Selection
AI model quality and cost tier for this block.
Output format
output_mode
Selection
Whether the AI response should be plain text or structured JSON.
Output length
max_output
Selection
Maximum answer length the AI block may produce.
Tool workflows
enabled_tools
Tool workflow list
Tool workflows available to this AI block.
Store response as
output_variable
Single-line text
Workflow variable where the result is stored for later blocks.
Paths
success
Model returned a response.
error
Request failed.
insufficient_credits
Input cost could not be covered.
Usage examples
Use JSON output when later blocks need exact fields instead of a paragraph. The AI stores a JSON object in {ticket_ai}; later blocks can reference {ticket_ai.priority}, {ticket_ai.summary}, and {ticket_ai.department}. Configuration: Prompt: Classify this ticket: {ticket_form.description}; Model: balanced.
Use Best for premium workflows that summarize long context for staff. The summary is stored as {thread_summary}; a staff log block can post it before assigning the case. Configuration: Prompt: Summarize this conversation for staff: {transcr...; Model: best.
8 blocks Channel Controls Blocks that create, find, edit, move, delete, and permission Discord channels, threads, categories, and voice channels.
action
Create category
action_create_category
Adds the Create category function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Create category function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Name template
name_template
Single-line text
Single-line text
Permission overwrites
permission_overwrites
Multi-line text
Permission value used by Discord permission checks or overwrites.
Store category as
store_category_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Create the category that later ticket channels will be placed inside. A Discord category named Support Tickets is created and stored as {support_category}.
action
Create thread
action_create_thread
Adds the Create thread function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Create thread function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Parent channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Thread name
name_template
Single-line text
Single-line text
Public/private
thread_type
Selection
Selection
Auto archive minutes
auto_archive_minutes
Single-line text
Single-line text
Store thread as
store_thread_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Start a thread under the current support channel for a specific conversation. A public thread named ticket-mira is created and stored as {ticket_thread}.
Use a private thread when only staff should discuss the submitted request. A private thread is created in the selected channel and saved as {staff_thread}.
action
Create voice channel
action_create_voice_channel
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Name template
name_template
Single-line text
Single-line text
Category ID
category_id
Single-line text
Category ID, category name, or variable used when placing the new channel.
User limit
user_limit
Single-line text
Discord user or member reference used by this block.
Bitrate
bitrate
Single-line text
Single-line text
Permission overwrites
permission_overwrites
Multi-line text
Permission value used by Discord permission checks or overwrites.
Store channel as
store_channel_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Create a voice room for a support call or event queue. A voice channel named Support Mira is created under Support and stored as {created_channel}.
action
Delete channel
action_delete_channel
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Delete the ticket channel after an archive or export block has already run. The current Discord channel is removed and the workflow continues to the next cleanup/logging block.
action
Edit channel
action_edit_channel
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Name template
name_template
Single-line text
Single-line text
Topic
topic
Multi-line text
Multi-line text
Slowmode seconds
slowmode_seconds
Single-line text
Single-line text
NSFW
nsfw
On/off
On/off
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Rename the current channel and add a topic after a ticket form is submitted. The current channel becomes ticket-mira and receives a topic that staff can scan.
Use a stored channel reference from an earlier Create channel block. The channel stored as {created_channel.id} is renamed and moved through the workflow without relying on the current channel.
action
Find channel
action_find_channel
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Source
source_mode
Selection
Controls where this block reads the target value from.
ID, name, or variable
value
Single-line text
Main value this block reads, stores, compares, or sends.
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
found
Outcome path.
missing
Outcome path.
Usage examples
Look up a known server channel and store it for later send/edit blocks. The support channel is stored as {support_channel}. Configuration: Store as: support_channel.
Use a channel name or ID saved in settings by another workflow. The channel found from {settings.panel_channel} is saved as {panel_channel}. Configuration: Store as: panel_channel.
action
Move channel
action_move_channel
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Category ID
category_id
Single-line text
Category ID, category name, or variable used when placing the new channel.
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Move the current channel after a ticket is closed. The ticket channel is placed under Archived Tickets and the workflow can continue with logging.
action
Set channel permissions
action_set_channel_permissions
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Target
target
Single-line text
Single-line text
Permissions
permissions
Multi-line text
Permission value used by Discord permission checks or overwrites.
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Apply permission overwrites after creating or finding a private channel. The target channel denies @everyone access and allows the support team to read and reply.
1 blocks Comparisons Reusable value checks for branching when two values need to be compared.
condition
Compare values
condition_compare
Branches the workflow based on left value, operator, right value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on left value, operator, right value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Left value
left_value
Single-line text
Value used by the selected source or mode.
Operator
operator
Selection
Selection
Right value
right_value
Single-line text
Value used by the selected source or mode.
Value type
value_type
Selection
Selection
Case sensitive
case_sensitive
On/off
On/off
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Branch based on whether a submitted number is above a threshold. Counts over 10 follow the if path; smaller values follow else when connected.
Route messages that include a configured word or phrase. Messages containing refund continue through if; other messages continue through else.
14 blocks Conditions Decision blocks that split the workflow based on messages, users, roles, permissions, records, cooldowns, and validation results.
condition
If account age
condition_account_age
Branches the workflow based on member, operator, age (days). Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on member, operator, age (days). Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Member
member_source
Selection
Controls where this block reads the target value from.
Operator
operator
Selection
Selection
Age (days)
age_days
Single-line text
Single-line text
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Use this before giving access or roles to reduce raid risk. Accounts younger than seven days follow the if path for extra verification.
Use greater_than when older trusted accounts should skip a review path. Accounts older than 30 days follow the if path.
condition
If cooldown available
condition_cooldown_available
Branches the workflow based on cooldown key, scope, duration (seconds). Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on cooldown key, scope, duration (seconds). Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Cooldown key
cooldown_key
Single-line text
Single-line text
Scope
scope
Selection
Where stored memory or data belongs, such as user, channel, guild, or global.
Duration (seconds)
duration_seconds
Single-line text
Single-line text
Store remaining as
store_remaining_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Show cooldown branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Prevent a user from claiming a reward more than once per day. If the cooldown is available, the reward path runs. Otherwise {cooldown_remaining} can be shown in a reply.
condition
If entity exists
condition_entity_exists
Branches the workflow based on entity type, source, value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on entity type, source, value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Entity type
entity_type
Selection
Selection
Source
source_mode
Selection
Controls where this block reads the target value from.
Value
value
Single-line text
Main value this block reads, stores, compares, or sends.
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Validate setup before trying to apply a moderation role. If the role exists, the workflow applies it. Otherwise the else path can create it.
Use an ID check when setup stores exact Discord IDs. The if path runs only if that channel is still present in the server.
condition
If form response valid
condition_form_response_valid
Branches the workflow based on field, validation, validation value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on field, validation, validation value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Field
field_name
Single-line text
Single-line text
Validation
validation
Selection
Selection
Validation value
validation_value
Single-line text
Value used by the selected source or mode.
Error message
error_message
Single-line text
Single-line text
Show invalid branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Validate a submitted form field before saving a user profile. Valid email values continue through if; invalid values follow else and can show the error message.
Use minimum length to keep ticket intake useful for staff. Descriptions shorter than 20 characters go to the invalid path.
condition
If member has role
condition_member_has_role
Branches the workflow based on member, member value, role. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on member, member value, role. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Member
member_source
Selection
Controls where this block reads the target value from.
Member value
member_value
Single-line text
Value used by the selected source or mode.
Role
role_source
Selection
Where Sefrum should read the target role from.
Role value
role_value
Single-line text
Value used by the selected source or mode.
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Place this before a moderation action that should require a role. Members with Moderator continue through if; everyone else follows else.
condition
If message contains
condition_contains
Branches the workflow based on source, contains, case sensitive. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on source, contains, case sensitive. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Source
source
Selection
Selection
Contains
value
Single-line text
Main value this block reads, stores, compares, or sends.
Case sensitive
case_sensitive
On/off
On/off
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Use this in an On message workflow to watch for a simple phrase. Messages containing help continue through if.
Use command.input when the slash command text should decide the route. Inputs containing billing continue through the billing path.
condition
If message matches filter
condition_message_matches_filter
Branches the workflow based on filter, pattern or list, threshold. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on filter, pattern or list, threshold. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Filter
filter
Selection
The matching rule or search filter used by the block.
Pattern or list
pattern
Multi-line text
Multi-line text
Threshold
threshold
Single-line text
Single-line text
Case sensitive
case_sensitive
On/off
On/off
Show clean branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Use this in an On message moderation workflow. Messages containing Discord invite links follow the moderation path.
Use threshold-based matching for messages with too many mentions. Messages above the threshold can be deleted, logged, or warned.
condition
If permission allowed
condition_permission_check
Branches the workflow based on member, permission, channel scope. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on member, permission, channel scope. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Member
member_source
Selection
Controls where this block reads the target value from.
Permission
permission
Selection
Permission value used by Discord permission checks or overwrites.
Channel scope
channel_source
Selection
Where Sefrum should read the target channel from.
Channel ID
channel_id
Single-line text
Discord channel ID, channel name, or variable depending on the source setting.
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Protect purge or cleanup commands from normal members. Users with Manage Messages continue through if; others receive the denial path.
condition
If role exists
condition_role_exists
Branches the workflow based on role source, role id or name, variable. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on role source, role id or name, variable. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Role source
source_mode
Selection
Controls where this block reads the target value from.
Role ID or name
role_value
Single-line text
Value used by the selected source or mode.
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Run before a timeout/mute workflow tries to assign a role. If Muted exists the role workflow continues; else can create the role first.
condition
If user is
condition_user_is
Branches the workflow based on user id or mention, match, show else branch. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on user id or mention, match, show else branch. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
User ID or mention
user_ref
Single-line text
User ID, mention, username, or variable used to identify a Discord member.
Match
match_mode
Selection
Controls where this block reads the target value from.
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Use this before a setup command that only one Discord user should run. Only the configured user ID follows the if path.
Use not_equals when one account should be excluded from the workflow. Everyone except the configured user continues through if.
condition
If variable equals
condition_variable_equals
Branches the workflow based on variable, match, value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on variable, match, value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Match
match_mode
Selection
Controls where this block reads the target value from.
Value
value
Single-line text
Main value this block reads, stores, compares, or sends.
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Use this after loading a record to route open tickets differently from closed ones. Tickets with status open continue through if.
Use contains when the variable is longer text. Values containing refund follow the if path.
condition
If variable exists
condition_variable_exists
Branches the workflow based on variable, show else branch. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on variable, show else branch. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Use this immediately after Load record when later blocks expect ticket data. If {ticket} exists, the workflow continues. If it is missing, else can reply with not found.
condition
If variable in
condition_value_in_list
Branches the workflow based on variable, list variable, case sensitive. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on variable, list variable, case sensitive. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
List variable
list_name
Single-line text
Single-line text
Case sensitive
case_sensitive
On/off
On/off
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Route only values that exist in a prepared list variable. If {topic} exists inside allowed_topics, the workflow accepts it; otherwise it follows else.
condition
Validate input
condition_validate_input
Branches the workflow based on source, variable, value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on source, variable, value. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Source
source_mode
Selection
Controls where this block reads the target value from.
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Value
value
Single-line text
Main value this block reads, stores, compares, or sends.
Validation
validation
Selection
Selection
Validation value
validation_value
Single-line text
Value used by the selected source or mode.
Show invalid branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Use this before saving profile data from a command input. Valid email text continues through if; invalid text follows else.
Use this before editing an embed color or role color. #d97757 passes; invalid color text follows else.
1 blocks Context Values Blocks that copy the current Discord context into named variables for later blocks.
action
Get current
action_get_current
Adds the Get current function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Get current function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Item
item
Selection
Selection
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Capture the Discord channel where the workflow is running. The channel is stored as {current_channel} for later send, edit, or record blocks. Configuration: Store as: current_channel.
Capture the member who ran the command or clicked the interaction. The user is stored as {request_user} for later role, DM, or record blocks. Configuration: Store as: request_user.
19 blocks Data Integrations Persistence, locks, records, variables, scheduled tasks, and webhook calls.
action
Acquire lock
action_acquire_lock
Adds the Acquire lock function to the workflow. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Adds the Acquire lock function to the workflow. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Key
key
Single-line text
Record key, memory key, lock key, or setting name.
TTL seconds
ttl_seconds
Single-line text
Single-line text
Store expiry as
store_expires_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
acquired
Outcome path.
locked
Outcome path.
Usage examples
Lock a user while a ticket create workflow is running. The workflow owns lock ticket_create:{user.id} for 30 seconds and stores the expiry in {lock_expires_at}.
action
Variables
Delete runtime variable
action_delete_record
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Type
collection
Single-line text
The record collection or table name used for saved workflow data.
Key
record_key
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Remove saved data after a ticket is closed and exported. The record tickets/{ticket.id} is deleted.
action
Variables
Delete runtime variables
action_delete_records
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Type
collection
Single-line text
The record collection or table name used for saved workflow data.
Field path
field_name
Single-line text
Single-line text
Equals
equals
Single-line text
Single-line text
Contains
contains
Single-line text
Single-line text
Limit
limit
Single-line text
Maximum number of items to return or process.
Store deleted count as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Bulk-remove records that match a field filter. Up to 25 records in temp_sessions with status expired are removed.
action
Variables
Delete variable
action_delete_global_variable
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Key
key
Single-line text
Record key, memory key, lock key, or setting name.
Paths
out
Next path.
Usage examples
Remove a bot-wide setup value so the setup command can be rerun cleanly. support_channel is removed from global storage.
action
Variables
Get variable
action_get_global_variable
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Key
key
Single-line text
Record key, memory key, lock key, or setting name.
Default value
default_value
Single-line text
Value used by the selected source or mode.
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
found
Outcome path.
missing
Outcome path.
Usage examples
Load a bot-wide setting saved during setup. If support_channel is set, its value is stored as {support_channel}. Otherwise {support_channel} becomes fallback-support. Configuration: Store as: support_channel.
condition
Variables
If runtime variable list contains
condition_record_list_contains
Branches based on whether a loaded runtime variable's nested list contains a value. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Branches based on whether a loaded runtime variable's nested list contains a value. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Runtime variable
record_variable
Single-line text
Single-line text
List path
list_path
Single-line text
Single-line text
Item source
item_source
Selection
Controls where this block reads the target value from.
Item value
item_value
Multi-line text
Value used by the selected source or mode.
Item variable
item_variable
Single-line text
Single-line text
Case sensitive
case_sensitive
On/off
On/off
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Branch based on a list inside a loaded record. If poll.votes already contains the current user ID, the workflow can show an already-voted message; otherwise it can add the vote.
condition
Variables
If variable exists
condition_global_variable_exists
Branches the workflow based on key, store as. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Branches the workflow based on key, store as. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Key
key
Single-line text
Record key, memory key, lock key, or setting name.
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Route users to setup instructions when a required bot setting is missing. If support_channel exists, the workflow continues to post the panel. Otherwise else can show /setup. Configuration: Store as: support_channel.
action
Variables
Increment runtime variable field
action_increment_record_field
Copies a loaded runtime variable, increments one numeric field, and stores the updated value for saving. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Copies a loaded runtime variable, increments one numeric field, and stores the updated value for saving. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Runtime variable
record_variable
Single-line text
Single-line text
Field path
field_path
Single-line text
Single-line text
Amount
amount
Single-line text
Single-line text
Default value
default_value
Single-line text
Value used by the selected source or mode.
Store variable as
store_as
Single-line text
Workflow variable name where this block stores its result.
Store value as
store_value_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Increment a number inside a loaded record without asking AI to rewrite the whole object. session.moves increases by 1 and the updated session is stored as {updated_session}. Configuration: Store record as: updated_session.
action
Variables
Increment variable
action_increment_global_variable
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Key
key
Single-line text
Record key, memory key, lock key, or setting name.
Amount
amount
Single-line text
Single-line text
Default value
default_value
Single-line text
Value used by the selected source or mode.
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Increase a platform counter each time a ticket is opened. ticket_count increases by 1 and the new value is stored as {ticket_count}. Configuration: Store as: ticket_count.
action
Variables
Load runtime variable
action_load_record
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Type
collection
Single-line text
The record collection or table name used for saved workflow data.
Key
record_key
Single-line text
Single-line text
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
found
Outcome path.
missing
Outcome path.
Usage examples
Read saved ticket data before changing status or posting a summary. The record tickets/{channel.id} is loaded into {ticket}. Configuration: Store as: ticket.
action
Variables
Query runtime variables
action_query_records
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Type
collection
Single-line text
The record collection or table name used for saved workflow data.
Field path
field_name
Single-line text
Single-line text
Equals
equals
Single-line text
Single-line text
Contains
contains
Single-line text
Single-line text
Limit
limit
Single-line text
Maximum number of items to return or process.
Store list as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
found
Outcome path.
missing
Outcome path.
Usage examples
Search a collection for records matching one field. Up to five matching records are stored as {open_tickets}. Configuration: Store as: open_tickets.
action
Release lock
action_release_lock
Adds the Release lock function to the workflow. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Adds the Release lock function to the workflow. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Key
key
Single-line text
Record key, memory key, lock key, or setting name.
Paths
out
Next path.
Usage examples
Unlock the user after the protected workflow finishes or fails. ticket_create:{user.id} can be acquired again by future runs.
action
Variables
Save runtime variable
action_save_record
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Type
collection
Single-line text
The record collection or table name used for saved workflow data.
Key
record_key
Single-line text
Single-line text
Value JSON
record_json
Multi-line text
Record data saved as JSON. Values can include workflow variables.
Merge existing
merge
On/off
On/off
Paths
out
Next path.
Usage examples
Create or replace a ticket record with structured data. The ticket record is saved under tickets/{created_channel.id}.
Update only a few fields on an existing record. The existing ticket keeps its other fields while status and closed_by are updated.
action
Schedule task
action_schedule_task
Adds the Schedule task function to the workflow. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Adds the Schedule task function to the workflow. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Task name
task_name
Single-line text
Single-line text
Run at
run_at
Single-line text
Single-line text
Timezone
timezone
Single-line text
Single-line text
Payload JSON
payload_json
Multi-line text
JSON configuration for this block. Variables can be inserted where the runtime supports templates.
Paths
out
Next path.
Usage examples
Create a delayed task after a ticket is opened. A follow_up_ticket task is scheduled with the ticket id inside its payload.
action
Variables
Set runtime variable field
action_set_record_field
Copies a loaded runtime variable, changes one nested field, and stores the updated value for saving. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Copies a loaded runtime variable, changes one nested field, and stores the updated value for saving. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Runtime variable
record_variable
Single-line text
Single-line text
Field path
field_path
Single-line text
Single-line text
Source
value_source
Selection
Controls where this block reads the target value from.
Value
value
Multi-line text
Main value this block reads, stores, compares, or sends.
Source variable
source_variable
Single-line text
Single-line text
Store variable as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Use this after Load record when one field should change but the rest of the record should stay intact. The loaded {ticket} object is copied, status becomes closed, and the updated object is stored as {updated_ticket}. Save record can then persist {updated_ticket}. Configuration: Store record as: updated_ticket.
Use runtime variables as the new field value. The updated record keeps its existing data and records the Discord user ID that performed the action. Configuration: Store record as: updated_case.
action
Variables
Set variable
action_set_global_variable
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Key
key
Single-line text
Record key, memory key, lock key, or setting name.
Source
source_mode
Selection
Controls where this block reads the target value from.
Value
value
Multi-line text
Main value this block reads, stores, compares, or sends.
Source variable
source_variable
Single-line text
Single-line text
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Store a channel selected during setup so future workflows can reuse it. support_channel is saved globally and {saved_setting} contains the stored value. Configuration: Store as: saved_setting.
Use JSON mode when the setting needs multiple related values. support_config is stored as a structured object that later workflows can read. Configuration: Store as: support_config.
action
Variables
Update runtime variable list
action_update_record_list
Copies a loaded runtime variable, adds, removes, toggles, or clears an item in a nested list, and stores the updated value. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Copies a loaded runtime variable, adds, removes, toggles, or clears an item in a nested list, and stores the updated value. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Runtime variable
record_variable
Single-line text
Single-line text
List path
list_path
Single-line text
Single-line text
Operation
operation
Selection
The action this block should perform.
Item source
item_source
Selection
Controls where this block reads the target value from.
Item value
item_value
Multi-line text
Value used by the selected source or mode.
Item variable
item_variable
Single-line text
Single-line text
Skip duplicates
unique_only
On/off
On/off
Case sensitive
case_sensitive
On/off
On/off
Store variable as
store_as
Single-line text
Workflow variable name where this block stores its result.
Store changed as
store_changed_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Add a value to a nested list inside a loaded record. The clicked item is appended to session.selectedItems and the updated session can be saved. Configuration: Operation: add; Store record as: updated_session.
Use toggle for buttons that add an item when absent and remove it when present. The user ID is toggled inside poll.votes without replacing the rest of the poll record. Configuration: Operation: toggle; Store record as: updated_poll.
action
Variables
Upsert runtime variable
action_upsert_record
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Stores or loads persistent per-bot data for economy, managed work items, settings, and profiles. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Type
collection
Single-line text
The record collection or table name used for saved workflow data.
Key
record_key
Single-line text
Single-line text
Value JSON
record_json
Multi-line text
Record data saved as JSON. Values can include workflow variables.
Merge existing
merge
On/off
On/off
Paths
out
Next path.
Usage examples
Save the record whether or not it already exists. profiles/{user.id} exists after the block runs and contains the submitted values.
action
Webhook request
action_webhook_request
Adds the Webhook request function to the workflow. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Adds the Webhook request function to the workflow. Use it when the bot needs memory across runs: settings, ticket records, cooldowns, locks, scheduled work, or calls to outside systems.
Properties
Method
method
Selection
HTTP method used for the webhook request.
URL
url
Single-line text
External URL used for web search, scraping, storage, or webhooks.
Headers JSON
headers_json
Multi-line text
HTTP headers sent with the webhook request.
Body JSON
body_json
Multi-line text
JSON configuration for this block. Variables can be inserted where the runtime supports templates.
Store response as
store_response_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
success
Model returned a response.
error
Request failed.
Usage examples
Notify an external system when a ticket opens. The POST request is sent and the response is stored as {webhook_response}.
Use GET when the workflow needs outside data before replying. The API response is stored as {service_status}.
13 blocks Discord Actions Common Discord-facing actions such as replies, embeds, DMs, role changes, logs, member operations, and channel messages.
action
Add role
action_add_role
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Role source
source_mode
Selection
Controls where this block reads the target value from.
Role source
role_id
Single-line text
Discord role ID, role name, or variable depending on the source setting.
Paths
out
Next path.
Usage examples
Add a role after onboarding or verification passes. The configured role is added to the triggering member.
action
Audit embed
action_audit_embed
Sends a polished Discord embed with configurable title, fields, images, and footer. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Sends a polished Discord embed with configurable title, fields, images, and footer. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Title
title
Single-line text
Primary heading for embeds, panels, records, or created items.
Description
description
Multi-line text
The longer body text shown in an embed, panel, record, or generated item.
Color
color
Single-line text
Discord color value, usually a hex color such as #f5a623.
Action
action
Single-line text
Single-line text
Actor
actor
Single-line text
Single-line text
Target
target
Single-line text
Single-line text
Reason
reason
Multi-line text
Multi-line text
Paths
out
Next path.
Usage examples
Send an audit embed to a staff channel with actor, target, and reason. The audit channel receives an embed describing the timeout action. Configuration: Title: Member timed out.
action
Create channel
action_create_channel
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel type
channel_type
Selection
Channel ID, channel name, or variable used by this block.
Name template
name_template
Single-line text
Single-line text
Category ID
category_id
Single-line text
Category ID, category name, or variable used when placing the new channel.
Permission overwrites
permission_overwrites
Multi-line text
Permission value used by Discord permission checks or overwrites.
Store channel as
store_channel_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Open a dedicated text channel for a user's ticket. A text channel named ticket-mira is created under Support and stored as {created_channel}.
Use a different channel type when the workflow creates structured discussion spaces. A forum channel is created and saved as {created_channel}.
action
Find member
action_find_member
Adds the Find member function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Find member function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Source
source_mode
Selection
Controls where this block reads the target value from.
ID, mention, or variable
value
Single-line text
Main value this block reads, stores, compares, or sends.
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
found
Outcome path.
missing
Outcome path.
Usage examples
Resolve a user ID from a command variable before moderation actions run. The member is stored as {target_member}. Configuration: Store as: target_member.
action
Log event
action_log
Adds the Log event function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Log event function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel ID
channel_id
Single-line text
Discord channel ID, channel name, or variable depending on the source setting.
Log message
message
Multi-line text
Discord message text. Variables can be inserted with braces.
Paths
out
Next path.
Usage examples
Post a simple text log to a configured staff channel. The channel mod-log receives the formatted message. Configuration: Message: {user.username} deleted {count} messages in {ch....
action
Member operation
action_member_operation
Adds the Member operation function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Member operation function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Operation
operation
Selection
The action this block should perform.
Member
member_source
Selection
Controls where this block reads the target value from.
Member value
member_value
Single-line text
Value used by the selected source or mode.
Role value
role_value
Single-line text
Value used by the selected source or mode.
Nickname
nickname
Single-line text
Single-line text
Duration (minutes)
duration_minutes
Single-line text
Single-line text
Reason
reason
Multi-line text
Multi-line text
Paths
out
Next path.
Usage examples
Apply a Discord timeout after permission checks pass. The selected member is timed out for 10 minutes and the reason is saved in Discord audit logs. Configuration: Operation: timeout.
Use a submitted form field when staff entered the target user in a modal. The form-selected member is kicked with the configured reason. Configuration: Operation: kick.
action
Message operation
action_message_operation
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Operation
operation
Selection
The action this block should perform.
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Message
message_source
Selection
Where Sefrum should read the target message from.
Message value
message_value
Single-line text
Value used by the selected source or mode.
Count
count
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Delete recent messages after a moderator runs a purge command. 25 messages are deleted from the current channel. Configuration: Operation: delete_bulk.
Use a saved message ID when a setup workflow should pin its own output. The message stored in {announcement_message.id} is pinned. Configuration: Operation: pin.
action
Remove role
action_remove_role
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Role source
source_mode
Selection
Controls where this block reads the target value from.
Role source
role_id
Single-line text
Discord role ID, role name, or variable depending on the source setting.
Paths
out
Next path.
Usage examples
Remove a temporary role once onboarding is complete. The Pending role is removed from the triggering member.
action
Reply
action_reply
Adds the Reply function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Reply function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Message
message
Multi-line text
Discord message text. Variables can be inserted with braces.
Ephemeral
ephemeral
On/off
When enabled, only the user who triggered the interaction can see the response.
Paths
out
Next path.
Usage examples
Respond to a simple slash command in the current channel. Discord receives: Hello Mira! Configuration: Message: Hello {user.username}!.
Use ephemeral replies for admin-only setup feedback. Only the moderator sees: Panel posted in #support. Configuration: Message: Panel posted in {channel.mention}..
action
Reply with embed
action_embed_reply
Sends a polished Discord embed with configurable title, fields, images, and footer. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Sends a polished Discord embed with configurable title, fields, images, and footer. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Title
title
Single-line text
Primary heading for embeds, panels, records, or created items.
Title URL
url
Single-line text
External URL used for web search, scraping, storage, or webhooks.
Description
description
Multi-line text
The longer body text shown in an embed, panel, record, or generated item.
Color
color
Single-line text
Discord color value, usually a hex color such as #f5a623.
Author
author_name
Single-line text
Single-line text
Author icon URL
author_icon_url
Single-line text
Single-line text
Image URL
image_url
Single-line text
Image URL used for embeds, image inspection, or generated output.
Thumbnail URL
thumbnail_url
Single-line text
Single-line text
Fields JSON
fields_json
Multi-line text
Embed field definitions, including names, values, and inline layout.
Footer
footer
Single-line text
Small footer text shown at the bottom of an embed.
Footer icon URL
footer_icon_url
Single-line text
Single-line text
Ephemeral
ephemeral
On/off
When enabled, only the user who triggered the interaction can see the response.
Paths
out
Next path.
Usage examples
Send a polished welcome/rules message after setup. Discord receives an embed titled Welcome to {guild.name} with the configured description, color, fields, and footer. Configuration: Title: Welcome to {guild.name}.
Use ephemeral embeds for setup errors that only the command runner should see. Only the triggering user sees the warning embed. Configuration: Title: Setup missing.
action
Send channel message
action_send_channel_message
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Manages Discord channels, threads, permissions, or channel metadata. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Message
message
Multi-line text
Discord message text. Variables can be inserted with braces.
Mention role IDs
mention_roles
Multi-line text
Role ID, role name, or variable used by this block.
Store message as
store_message_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Send a message to a channel selected by ID or name. The staff-log channel receives the message and the sent message is stored as {sent_message}. Configuration: Message: New ticket from {user.username}: {ticket_ai.sum....
action
Send DM
action_send_dm
Adds the Send DM function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Send DM function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
User
user_source
Selection
Controls where this block reads the target value from.
User value
user_value
Single-line text
Value used by the selected source or mode.
Message
message
Multi-line text
Discord message text. Variables can be inserted with braces.
Fail silently
fail_silently
On/off
On/off
Paths
out
Next path.
Usage examples
Privately notify the user who opened a ticket. The triggering user receives a direct message. If DMs are closed, the workflow can continue silently. Configuration: Message: Your ticket #{ticket.id} was opened..
action
Set nickname
action_set_nickname
Adds the Set nickname function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Set nickname function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Member
member_source
Selection
Controls where this block reads the target value from.
Member value
member_value
Single-line text
Value used by the selected source or mode.
Nickname
nickname_template
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Change the member nickname after a role or purchase check. The selected member's nickname becomes [VIP] Mira.
5 blocks Event Triggers Blocks that start workflows from server events instead of slash commands.
trigger
On channel created
event_on_channel_created
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Properties
Channel type
channel_type
Selection
Channel ID, channel name, or variable used by this block.
Store channel as
store_channel_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Start a workflow whenever a new text channel is created. The new channel is stored as {created_channel} for audit embeds or permission checks.
Use any when the audit workflow should cover text, voice, forum, and thread channels. Every channel creation event starts the workflow.
trigger
On message
event_on_message
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Properties
Channel filter
channel_filter
Single-line text
Channel ID, channel name, or variable used by this block.
Content contains
contains
Single-line text
Single-line text
Ignore bots
ignore_bots
On/off
On/off
Paths
out
Next path.
Usage examples
Start a workflow when a non-bot message in support contains help. Matching messages start the workflow with message, user, channel, and guild context available.
trigger
On reaction
event_on_reaction
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Properties
Emoji
emoji
Single-line text
Single-line text
Message ID
message_id
Single-line text
Discord message ID, or a variable containing one.
Paths
out
Next path.
Usage examples
Start a workflow when a user reacts with a specific emoji on a specific message. When someone reacts with :white_check_mark: on the configured message, the workflow can add a role or record the reaction.
trigger
On role changed
event_on_role_changed
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Properties
Role filter
role_filter
Single-line text
Role ID, role name, or variable used by this block.
Change type
change_type
Selection
Selection
Paths
out
Next path.
Usage examples
Start a workflow when server roles are created. The workflow can log the new role or apply policy checks.
Start a workflow when a member receives a matching role. The workflow can send a welcome message, unlock channels, or save profile state.
trigger
On user join
event_on_user_join
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Starts a flow from a command, message, interaction, or Discord event. Use it to start workflows from Discord events. Event blocks are usually paired with conditions so the bot responds only in the right channels and situations.
Properties
Store user as
store_user_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Trigger a welcome/onboarding workflow for new members. The joining user is stored as {new_member} for role, DM, and welcome blocks.
1 blocks Forms Blocks that collect structured user input with Discord forms and route submitted, cancelled, and invalid states.
form
Form
form_collect
Collects structured user input and routes submitted, cancelled, or invalid responses. Use it when a button or command needs more information than a slash command option should collect. Submitted answers become variables that later blocks can use in replies, embeds, records, or staff notifications.
Collects structured user input and routes submitted, cancelled, or invalid responses. Use it when a button or command needs more information than a slash command option should collect. Submitted answers become variables that later blocks can use in replies, embeds, records, or staff notifications.
Properties
Form key
form_key
Single-line text
Single-line text
Title
title
Single-line text
Primary heading for embeds, panels, records, or created items.
Description
description
Multi-line text
The longer body text shown in an embed, panel, record, or generated item.
Destination
destination
Selection
Selection
Timeout (minutes)
timeout_minutes
Single-line text
Single-line text
Store response as
store_response_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Notify channel ID
notify_channel_id
Single-line text
Channel ID, channel name, or variable used by this block.
Confirmation
confirmation_message
Multi-line text
Multi-line text
Fields
fields
Form field list
Structured fields shown in the Discord form.
Paths
submitted
Outcome path.
invalid
Outcome path.
cancelled
Outcome path.
Usage examples
Open a Discord modal after a user presses Open ticket. Submitted answers are stored as {ticket_form}; submitted, invalid, and cancelled can each connect to different blocks. Configuration: Title: Open a ticket.
Use DM when the answers should not be posted in a public channel. The user receives the form privately and staff can be notified in staff-log after submission. Configuration: Title: Staff application.
9 blocks Interaction Controls Blocks that show, edit, defer, disable, or route buttons, panels, select menus, and interaction responses.
action
Apply grid cell move
action_apply_grid_cell_move
Applies a clicked grid cell to saved state: reveal, flag, hazard loss, zero expansion, and win detection. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Applies a clicked grid cell to saved state: reveal, flag, hazard loss, zero expansion, and win detection. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Properties
Record variable
record_variable
Single-line text
Single-line text
Row value
row_value
Single-line text
Value used by the selected source or mode.
Column value
col_value
Single-line text
Value used by the selected source or mode.
Rows
rows
Single-line text
Single-line text
Columns
cols
Single-line text
Single-line text
Cell values path
cell_values_path
Single-line text
Single-line text
Hazards path
hazards_path
Single-line text
Single-line text
Revealed list path
revealed_list_path
Single-line text
Single-line text
Marked list path
marked_list_path
Single-line text
Single-line text
Mode path
mode_path
Single-line text
Single-line text
Fallback mode
fallback_mode
Selection
Controls where this block reads the target value from.
Hazard values
hazard_values
Single-line text
Single-line text
Reveal zeros
reveal_zero_neighbors
On/off
On/off
Reveal all on loss
reveal_all_on_loss
On/off
On/off
Status path
status_path
Single-line text
Single-line text
Result path
result_path
Single-line text
Single-line text
Move count path
move_count_path
Single-line text
Single-line text
Store record as
store_as
Single-line text
Workflow variable name where this block stores its result.
Store outcome as
store_outcome_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Store cell value as
store_cell_value_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
action
Build grid state
action_build_grid_state
Creates a saved rectangular grid state with optional hidden hazard positions and cell values. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Creates a saved rectangular grid state with optional hidden hazard positions and cell values. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Properties
Base record variable
record_variable
Single-line text
Single-line text
Rows
rows
Single-line text
Single-line text
Columns
cols
Single-line text
Single-line text
Hazard count
hazard_count
Single-line text
Single-line text
Hazard value
hazard_value
Single-line text
Value used by the selected source or mode.
Safe value
safe_value
Single-line text
Value used by the selected source or mode.
Use adjacency counts
use_adjacency_counts
On/off
On/off
Seed
seed
Single-line text
Single-line text
Cells path
cells_path
Single-line text
Single-line text
Hazards path
hazards_path
Single-line text
Single-line text
Revealed path
revealed_path
Single-line text
Single-line text
Marked path
marked_path
Single-line text
Single-line text
Store state as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Generate a compact grid record with hidden hazard positions, visible cell values, and empty revealed/marked lists. {board.json} can be saved as the session record, then passed into Build grid buttons to render the first Discord board. Configuration: Store state as: board.
Use a seed when the same board should be recreated for a reset, daily challenge, or tournament round. The same rows, columns, hazard count, and seed produce the same hidden hazard layout. Configuration: Store state as: daily_grid.
action
Disable buttons
action_disable_components
Adds the Disable buttons function to the workflow. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Adds the Disable buttons function to the workflow. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Properties
Message source
message_source
Selection
Where Sefrum should read the target message from.
Message value
message_value
Single-line text
Value used by the selected source or mode.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Paths
out
Next path.
Usage examples
Prevent old panel buttons from being clicked again. The buttons on the stored message become disabled.
action
Edit response
action_edit_response
Adds the Edit response function to the workflow. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Adds the Edit response function to the workflow. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Properties
Content
content
Multi-line text
Discord message text. Variables can be inserted with braces.
Title
title
Single-line text
Primary heading for embeds, panels, records, or created items.
Title URL
url
Single-line text
External URL used for web search, scraping, storage, or webhooks.
Description
description
Multi-line text
The longer body text shown in an embed, panel, record, or generated item.
Color
color
Single-line text
Discord color value, usually a hex color such as #f5a623.
Fields JSON
fields_json
Multi-line text
Embed field definitions, including names, values, and inline layout.
Buttons JSON
buttons_json
Multi-line text
Button definitions. Each button can become a clickable path in the workflow.
Image URL
image_url
Single-line text
Image URL used for embeds, image inspection, or generated output.
Thumbnail URL
thumbnail_url
Single-line text
Single-line text
Footer
footer
Single-line text
Small footer text shown at the bottom of an embed.
Message source
message_source
Selection
Where Sefrum should read the target message from.
Message value
message_value
Single-line text
Value used by the selected source or mode.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Ephemeral fallback
ephemeral
On/off
When enabled, only the user who triggered the interaction can see the response.
Paths
out
Next path.
Usage examples
Change the current interaction response after a user makes a choice. The existing response becomes Ticket opened with updated embed fields and buttons. Configuration: Title: Ticket opened.
Update a message sent earlier by storing its id. The message stored as {panel_message.id} is edited in {panel_channel.id}. Configuration: Title: Support is online.
condition
Interaction choice
condition_interaction_choice
Branches the workflow based on value source, choices json, show unmatched branch. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Branches the workflow based on value source, choices json, show unmatched branch. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Properties
Value source
value_source
Selection
Controls where this block reads the target value from.
Choices JSON
choices_json
Multi-line text
Choice definitions used to create dynamic output paths.
Show unmatched branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
choice_*
One path per configured interaction choice.
Usage examples
Handle clicks from a Send buttons panel. Clicking a button with id ticket.open follows the ticket.open branch.
Handle values selected from a Send select menu block. Choosing billing follows the billing branch; unmatched selections follow else when connected.
Match a reusable custom-id pattern and expose the clicked coordinates. A click on board.cell:2:3 follows the board.cell route and creates {row}=2, {col}=3, {event.match.row}=2, and {event.match.col}=3.
action
Show thinking
action_defer_response
Adds the Show thinking function to the workflow. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Adds the Show thinking function to the workflow. Use it when the workflow needs Discord components such as buttons, select menus, panel updates, or interaction responses.
Properties
Reply privately
ephemeral
On/off
When enabled, only the user who triggered the interaction can see the response.
Show typing state
thinking
On/off
On/off
Paths
out
Next path.
Usage examples
Acknowledge an interaction before AI, API, or setup work takes longer than a moment. Discord shows the user that the bot is thinking while the workflow continues.
Use a public acknowledgement when the eventual response should be visible to the channel. Discord keeps the interaction alive without making the response private.
7 blocks Logic Control-flow blocks for if/else paths, switches, loops, error handling, and stopping execution.
logic
And
logic_and
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Properties
Left condition
left_condition
Single-line text
Single-line text
Right condition
right_condition
Single-line text
Single-line text
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Continue only when both named checks passed earlier in the workflow. The if path runs only if has_role and cooldown_ready are both true.
logic
For n times
logic_for_times
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Properties
Count
count
Single-line text
Single-line text
Store index as
store_index_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Delay between runs (ms)
delay_ms
Single-line text
Single-line text
Paths
loop
Repeated path.
done
Finished path.
Usage examples
Run the loop path a fixed number of times with a delay between passes. The loop path runs 3 times and stores the current index as {reminder_index}.
logic
If else
logic_if_else
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Properties
Left value
left_value
Single-line text
Value used by the selected source or mode.
Operator
operator
Selection
Selection
Right value
right_value
Single-line text
Value used by the selected source or mode.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Split the workflow based on a loaded or AI-generated value. High-priority tickets follow if; other tickets follow else.
Use contains when the input is a longer sentence. Inputs containing urgent follow the if path.
logic
Or
logic_or
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Properties
Left condition
left_condition
Single-line text
Single-line text
Right condition
right_condition
Single-line text
Single-line text
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Continue when one of two previous checks passed. The if path runs if is_admin or is_moderator is true.
logic
Stop flow
logic_stop_flow
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Properties
Reason
reason
Single-line text
Single-line text
Mark as success
mark_success
On/off
On/off
Paths
out
Next path.
Usage examples
End the workflow intentionally so no later action blocks run. The workflow stops with reason Missing setup and is marked unsuccessful.
logic
Switch value
logic_switch
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Properties
Value source
value_source
Selection
Controls where this block reads the target value from.
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Case A
case_a
Single-line text
Single-line text
Case B
case_b
Single-line text
Single-line text
Case C
case_c
Single-line text
Single-line text
Paths
case_a
Outcome path.
case_b
Outcome path.
case_c
Outcome path.
default
Outcome path.
Usage examples
Create separate paths for a small list of known values. billing, technical, and moderation each get their own output path.
Use trigger_input when the slash command text should decide the path. The user's input is compared to the configured cases.
logic
Try / error
logic_try_catch
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Controls how the flow splits, loops, combines, or calculates decisions. Use it when the workflow needs structure: branching, switching, looping, error handling, or a deliberate stop. Logic blocks usually sit between a trigger and one or more action blocks.
Properties
Store error as
store_error_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Continue after error
continue_on_error
On/off
On/off
Paths
try
Outcome path.
error
Request failed.
done
Outcome path.
Usage examples
Wrap risky follow-up blocks so errors can be handled cleanly. If a later block fails, the error is stored as {last_error} and the error path can reply or log.
5 blocks Message Controls Blocks for reading, editing, deleting, pinning, and unpinning Discord messages.
action
Delete messages
action_delete_messages
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Message IDs
message_ids
Multi-line text
Multi-line text
Count from latest
count
Single-line text
Single-line text
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Delete explicit message IDs gathered by a previous Get messages or moderation block. The listed messages are deleted from the current channel.
action
Edit message
action_edit_message
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Message
message_source
Selection
Where Sefrum should read the target message from.
Message value
message_value
Single-line text
Value used by the selected source or mode.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
New content
content
Multi-line text
Discord message text. Variables can be inserted with braces.
Paths
out
Next path.
Usage examples
Update a message sent earlier without posting a new one. The target message content becomes the configured text. Configuration: Content: Support hours are now 9 AM - 5 PM UTC..
action
Get messages
action_get_messages
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Limit
limit
Single-line text
Maximum number of items to return or process.
Before message ID
before_message_id
Single-line text
Single-line text
Store list as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Read recent messages before summarizing or exporting a conversation. The latest 20 messages from support are stored as {recent_messages}. Configuration: Store as: recent_messages.
action
Pin message
action_pin_message
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Message
message_source
Selection
Where Sefrum should read the target message from.
Message value
message_value
Single-line text
Value used by the selected source or mode.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Pin a message that another block sent earlier. The message stored as {panel_message.id} is pinned.
action
Unpin message
action_unpin_message
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads, sends, edits, pins, deletes, or searches Discord messages. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Message
message_source
Selection
Where Sefrum should read the target message from.
Message value
message_value
Single-line text
Value used by the selected source or mode.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Remove an old pinned message after replacing it with a newer one. The stored announcement message is unpinned.
4 blocks Operators Utility operators for numbers, lists, dates, sorting, and calculations.
utility
Calculator
action_calculator
Adds the Calculator function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Adds the Calculator function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Properties
Left value
left_value
Single-line text
Value used by the selected source or mode.
Operator
operator
Selection
Selection
Right value
right_value
Single-line text
Value used by the selected source or mode.
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Calculate a new balance before saving it. {new_balance} stores the sum of {balance} and 25. Configuration: Store as: new_balance.
Use max when two values compete and the workflow needs the higher one. {best_score} stores the larger of {score_a} and {score_b}. Configuration: Store as: best_score.
utility
Date / time
action_date_time
Adds the Date / time function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Adds the Date / time function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Properties
Operation
operation
Selection
The action this block should perform.
Base value
base_value
Single-line text
Value used by the selected source or mode.
Amount
amount
Single-line text
Single-line text
Unit
unit
Selection
Selection
Format
format
Single-line text
Single-line text
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Capture when a ticket was opened. The current date/time is stored as {opened_at}. Configuration: Operation: now; Store as: opened_at.
Calculate a deadline from a stored time. The due date is stored as {due_at}. Configuration: Operation: add; Store as: due_at.
utility
Random number
action_random_number
Adds the Random number function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Adds the Random number function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Properties
Minimum
minimum
Single-line text
Single-line text
Maximum
maximum
Single-line text
Single-line text
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Generate a number for simple games, raffles, or economy rewards. A number from 10 to 100 is stored as {reward_amount}. Configuration: Store as: reward_amount.
utility
Sort list
action_sort_list
Adds the Sort list function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Adds the Sort list function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Properties
List variable
list_variable
Single-line text
Single-line text
Direction
direction
Selection
Selection
Value type
value_type
Selection
Selection
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Order a list variable numerically from highest to lowest. The sorted list is stored as {sorted_scores}. Configuration: Store as: sorted_scores.
Use text sorting when the values are names or labels. Names are stored from A to Z as {sorted_names}. Configuration: Store as: sorted_names.
6 blocks Role Controls Blocks that create, find, edit, delete, and apply Discord role changes.
action
Apply muted role permissions
action_apply_muted_role_overwrites
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Role
role_source
Selection
Where Sefrum should read the target role from.
Role value
role_value
Single-line text
Value used by the selected source or mode.
Reason
reason
Single-line text
Single-line text
Store result as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Update channel permissions so the Muted role cannot send messages. Muted role overwrites are applied across channels and {muted_overwrites} records the result. Configuration: Store as: muted_overwrites.
action
Create role
action_create_role
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Name template
name_template
Single-line text
Single-line text
Color
color
Single-line text
Discord color value, usually a hex color such as #f5a623.
Hoist
hoist
On/off
On/off
Mentionable
mentionable
On/off
On/off
Reason
reason
Single-line text
Single-line text
Store role as
store_role_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Create the role a moderation setup workflow will later apply. A role named Muted is created and stored as {muted_role}.
action
Delete role
action_delete_role
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Role
role_source
Selection
Where Sefrum should read the target role from.
Role value
role_value
Single-line text
Value used by the selected source or mode.
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Delete a role that an old setup no longer uses. The Old Muted role is removed from the server.
action
Edit role
action_edit_role
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Role
role_source
Selection
Where Sefrum should read the target role from.
Role value
role_value
Single-line text
Value used by the selected source or mode.
Name template
name_template
Single-line text
Single-line text
Color
color
Single-line text
Discord color value, usually a hex color such as #f5a623.
Hoist
hoist
On/off
On/off
Mentionable
mentionable
On/off
On/off
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Update role display settings after setup changes. The target role is renamed Verified Member and recolored.
action
Find role
action_find_role
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Source
source_mode
Selection
Controls where this block reads the target value from.
ID, name, or variable
value
Single-line text
Main value this block reads, stores, compares, or sends.
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
found
Outcome path.
missing
Outcome path.
Usage examples
Resolve a role before editing or assigning it. The Moderator role is stored as {moderator_role}. Configuration: Store as: moderator_role.
action
Modify member roles
action_modify_member_roles
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Reads or changes Discord role state for users and moderation workflows. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Operation
operation
Selection
The action this block should perform.
Member
member_source
Selection
Controls where this block reads the target value from.
Member value
member_value
Single-line text
Value used by the selected source or mode.
Role IDs or names
roles
Multi-line text
Role ID, role name, or variable used by this block.
Reason
reason
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Give a member multiple roles after onboarding completes. Member and Verified are added to the triggering user. Configuration: Operation: add.
Use replace when the member should end with exactly the listed roles. The member's workflow-managed roles are replaced by the configured list. Configuration: Operation: replace.
10 blocks Utilities Small helper blocks for variables, lists, prompts, waiting, parsing, random choices, and formatting.
action
Add to list
action_add_list_item
Adds the Add to list function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Add to list function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
List variable
list_name
Single-line text
Single-line text
Item source
source_mode
Selection
Controls where this block reads the target value from.
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Value
value
Single-line text
Main value this block reads, stores, compares, or sends.
Skip duplicates
unique_only
On/off
On/off
Paths
out
Next path.
Usage examples
Append a value to a workflow list. {selected_topic} is added to allowed_topics if it is not already present.
utility
Format text
action_format_text
Adds the Format text function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Adds the Format text function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Properties
Template
template
Multi-line text
Multi-line text
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Combine variables into one reusable text value. {ticket_line} becomes a formatted line ready for embeds or logs. Configuration: Store as: ticket_line.
utility
Parse duration
action_parse_duration
Adds the Parse duration function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Adds the Parse duration function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Properties
Value
value
Single-line text
Main value this block reads, stores, compares, or sends.
Store seconds as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Convert user-friendly duration text into a value later moderation blocks can use. {timeout_duration} stores the parsed duration from 10m. Configuration: Store as: timeout_duration.
utility
Parse number
action_parse_number
Adds the Parse number function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Adds the Parse number function to the workflow. Use it to prepare values for later blocks. Utility output is usually stored in a variable and then inserted into a reply, embed, condition, record, or Discord action.
Properties
Value
value
Single-line text
Main value this block reads, stores, compares, or sends.
Default value
default_value
Single-line text
Value used by the selected source or mode.
Integer
integer
On/off
On/off
Store as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Convert text input into a number before using it in message deletion. {purge_count} becomes an integer, or 10 if parsing fails. Configuration: Store as: purge_count.
action
Prompt user
action_prompt_user
Adds the Prompt user function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Prompt user function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Prompt
prompt
Multi-line text
Prompt or instruction text sent to the user, AI model, or parser.
Save response as
save_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Timeout (seconds)
timeout_seconds
Single-line text
How long to wait before the prompt or form times out.
Required
required
On/off
On/off
Paths
out
Next path.
Usage examples
Prompt the user when a command did not include required context. The user's response is stored as {reason}. Configuration: Prompt: Why should this ticket be closed?.
action
Random choice
action_random_choice
Adds the Random choice function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Random choice function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Choices
choices_text
Multi-line text
Multi-line text
Store result as
store_as
Single-line text
Workflow variable name where this block stores its result.
Paths
out
Next path.
Usage examples
Choose one line from a list of options. One greeting is stored as {greeting}. Configuration: Store as: greeting.
action
Remove from list
action_remove_list_item
Adds the Remove from list function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Remove from list function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
List variable
list_name
Single-line text
Single-line text
Item source
source_mode
Selection
Controls where this block reads the target value from.
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Value
value
Single-line text
Main value this block reads, stores, compares, or sends.
Case sensitive
case_sensitive
On/off
On/off
Paths
out
Next path.
Usage examples
Remove a selected value from a list variable. The chosen topic is removed from allowed_topics.
action
Set list variable
action_set_list_variable
Adds the Set list variable function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Set list variable function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
List variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Items
items_text
Multi-line text
Multi-line text
Delimiter
source_delimiter
Selection
Selection
Lowercase items
normalize_case
On/off
On/off
Paths
out
Next path.
Usage examples
Turn one text box into a list variable. allowed_topics becomes a list containing billing, technical, and moderation.
Use comma mode when values are easier to type inline. allowed_roles becomes a list split from the comma-separated text.
action
Set variable
action_set_variable
Adds the Set variable function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Set variable function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Variable
variable_name
Single-line text
Workflow variable name to read, write, compare, or update.
Source
source_mode
Selection
Controls where this block reads the target value from.
Value
value
Single-line text
Main value this block reads, stores, compares, or sends.
Source variable
source_variable
Single-line text
Single-line text
Paths
out
Next path.
Usage examples
Create a workflow variable with a fixed value. {ticket_status} becomes open.
Store the command input under a clearer name for later blocks. {topic} receives the slash command input.
action
Wait
action_wait
Adds the Wait function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Wait function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Duration (ms)
duration_ms
Single-line text
How long the workflow should wait, in milliseconds.
Paths
out
Next path.
Usage examples
Pause the workflow briefly before sending or editing another message. The next connected block runs one second later.
6 blocks Workflow Workflow-item blocks for managed tasks, panels, status changes, assignments, and conversation exports.
action
Assign workflow item
action_assign_work_item
Adds the Assign workflow item function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Assign workflow item function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Item
item_source
Selection
Controls where this block reads the target value from.
Assignee
assignee_source
Selection
Controls where this block reads the target value from.
Assignee value
assignee_value
Single-line text
Value used by the selected source or mode.
Notify assignee
notify
On/off
On/off
Paths
out
Next path.
Usage examples
Assign the current ticket record to the moderator who clicked Claim. The work item is assigned to {user.id} and the workflow can notify the channel.
Route work to a queue instead of one person. The item is assigned to the Support queue.
action
Create workflow item
action_create_work_item
Adds the Create workflow item function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Create workflow item function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Collection
collection
Single-line text
The record collection or table name used for saved workflow data.
Item type
item_type
Single-line text
Single-line text
Title source
title_source
Selection
Controls where this block reads the target value from.
Title
title
Single-line text
Primary heading for embeds, panels, records, or created items.
Store item as
store_item_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Create a managed work item after a ticket form is submitted. A support work item is created and stored as {ticket_item}. Configuration: Title: subject.
action
Export conversation
action_export_conversation
Adds the Export conversation function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Export conversation function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel
channel_source
Selection
Where Sefrum should read the target channel from.
Channel value
channel_value
Single-line text
The channel ID, name, or variable value used by the selected channel source.
Format
format
Selection
Selection
Destination
destination
Selection
Selection
Store URL as
store_url_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
out
Next path.
Usage examples
Save a readable HTML copy before closing a ticket channel. The export URL is stored as {transcript_url}.
Post a text transcript directly into a staff channel. A transcript is sent to the configured destination channel and its URL is stored.
condition
If workflow status
condition_workflow_status
Branches the workflow based on record, record value, status. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Branches the workflow based on record, record value, status. Use it before actions that should only happen for matching users, messages, roles, permissions, records, or values. Connect the passing path to the main behavior and the fallback path to a denial, error, or alternate response.
Properties
Record
record_source
Selection
Controls where this block reads the target value from.
Record value
record_value
Single-line text
Value used by the selected source or mode.
Status
status
Single-line text
Single-line text
Show else branch
enable_else
On/off
Adds or keeps a fallback output path for unmatched or failed cases.
Paths
if_true
Matched path.
if_false
Fallback path.
Usage examples
Check the managed work item state before running a close workflow. Open tickets follow if. Tickets already resolved follow else.
action
Interaction panel
action_send_interaction_panel
Creates or handles Discord components such as buttons, panels, and select menus. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Creates or handles Discord components such as buttons, panels, and select menus. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Channel ID
channel_id
Single-line text
Discord channel ID, channel name, or variable depending on the source setting.
Panel title
title
Single-line text
Primary heading for embeds, panels, records, or created items.
Description
description
Multi-line text
The longer body text shown in an embed, panel, record, or generated item.
Controls JSON
controls_json
Multi-line text
Panel control definitions, usually buttons that users can click.
Store interaction as
store_interaction_as
Single-line text
Workflow variable name where this block stores a value for later steps.
Paths
choice_*
One path per configured button.
out
Default path.
Usage examples
Post a simple panel with workflow controls into a staff channel. The panel message is stored as {work_panel}; button ids from controls_json can be handled later. Configuration: Title: Ticket queue.
action
Set workflow status
action_set_workflow_status
Adds the Set workflow status function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Adds the Set workflow status function to the workflow. Use it after a trigger, condition, or logic block when the workflow needs to do something in Discord or save data for later.
Properties
Item
item_source
Selection
Controls where this block reads the target value from.
Status
status
Single-line text
Single-line text
Note
note
Multi-line text
Multi-line text
Notify channel ID
notify_channel_id
Single-line text
Channel ID, channel name, or variable used by this block.
Paths
out
Next path.
Usage examples
Update managed item status after staff closes a case. The current channel's workflow item becomes resolved and a note is saved.