Create a fully-custom bot in minutes.
Use the flow builder to fully control your bot's behavior.
Scroll down to see how it works.
Step 1
Start by picking a trigger
Everything in Inventor starts with a trigger.
Triggers are things like Message Sent, Every Minute, or Slash Command.
When the trigger happens, your bot will perform some actions...
Triggers
Slash Command
Triggers when a slash command is used.
Context Menu
Triggers when a user or message context menu option is clicked.
Button Click
Triggers when a button below a message is clicked.
Modal Submit
Triggers when a form/modal is submitted.
Dropdown Select
Triggers when a dropdown below a message is selected.
Slash Command Autocomplete
Provide values for a slash command autocomplete.
Message Sent
Triggers when a message is sent.
Message Sent by Bot
Triggers when a message is sent by a bot.
Message Edited
Triggers when a message is edited.
Message Edited by Bot
Triggers when a message is edited by a bot.
Message Deleted
Triggers when a message is deleted.
Message Delete Bulk
Triggers when messages are deleted in bulk.
Poll Vote Added
Triggers when a user votes in a poll.
Poll Vote Removed
Triggers when a user removes their vote in a poll.
Channel Created
Triggers when a new channel is created.
Channel Update
Triggers when a channel is updated.
Channel Delete
Triggers when a channel is deleted.
Channel Pins Update
Triggers when a channel's pins are updated.
Voice State Update
Triggers when a member joins, leaves, or moves voice channels.
Server Joined
Triggers when your bot joins a new server.
Server Update
Triggers when a server is updated.
Server Left
Triggers when your bot leaves or is removed from a server.
Webhook Update
Triggers when a webhook is updated.
Audit Log Entry Created
Triggers when an audit log entry is created.
Thread Created
Triggers when a new thread is created.
Thread Update
Triggers when a thread is updated.
Thread Delete
Triggers when a thread is deleted.
Member Join
Triggers when a member joins a server.
Member Leave
Triggers when a member leaves a server.
Member Update
Triggers when a member is updated.
Member Ban
Triggers when a member is banned from a server.
Member Unban
Triggers when a member is unbanned from a server.
Typing Start
Triggers when a user starts typing in a channel.
Role Created
Triggers when a role is created.
Role Update
Triggers when a role is updated.
Role Delete
Triggers when a role is deleted.
Invite Created
Triggers when an invite is created.
Invite Deleted
Triggers when an invite is deleted.
Reaction Add
Triggers when a reaction is added to a message.
Reaction Remove
Triggers when a reaction is removed from a message.
Reaction Remove All
Triggers when all reactions are removed from a message.
Stage Instance Create
Triggered when a stage instance is created.
Stage Instance Update
Triggered when a stage instance is updated.
Stage Instance Delete
Triggered when a stage instance is deleted.
Guild Scheduled Event Create
Triggered when a guild scheduled event is created.
Guild Scheduled Event Update
Triggered when a guild scheduled event is updated.
Guild Scheduled Event Delete
Triggered when a guild scheduled event is deleted.
Guild Scheduled Event User Add
Triggered when a user has subscribed to a guild scheduled event.
Guild Scheduled Event User Remove
Triggered when a user has unsubscribed from a guild scheduled event.
Incoming Webhook
Triggers when an HTTP request is received.
IFTTT
Triggers when an IFTTT event for this flow is received.
New RSS Item
Triggers when a new item is added to an RSS feed.
Every Minute
Runs every minute.
Every 15 Minutes
Runs every 15 minutes.
Every 30 Minutes
Runs every 30 minutes.
Every Hour
Runs every hour.
Every Day
Runs every day.
Every Week
Runs every week.
Every Month
Runs every month.
Empty Trigger
This trigger is not caused by any actions. You can use it to create a flow that can only be manually run from the dashboard.
BotDash Dashboard Data
This flow will allow you to run arbitrary blocks in order to fetch data from databases, global variables, or other sources. The data can then be used in the dashboard by inserting variables in text shown on the dashboard.
BotDash Form Submission
Triggered by form submissions in your BotDash.
(there's 58 more triggers)
Step 2
Add some blocks
Blocks make things happen in your flow. You can drag & drop to reorder them.
Inventor has blocks like Assign Role, Get Server, and Send Message.
Message Sent
A message is sent in any channel your bot can see.
Blocks
If Statement
Conditionally run code based on a comparison.
Advanced Conditional
Conditionally run code based on a complex comparison.
Exit Flow
Exit the current flow before it has finished running.
Sleep
Pause the flow for a specified amount of time.
Is User Collaborator
Check if a user is a collaborator of the bot.
Break
Break out of the current loop or custom block.
Continue
Jump to the next iteration of the current loop.
Folder
Group several blocks together in a folder.
Async Folder
Run a group of blocks asynchronously.
Text Reply to Interaction
Reply or update reply to an interaction with a text message.
Defer Interaction
Defer an interaction to send a message later.
Defer Component Interaction
Defer a component interaction with the intent of updating message later.
Embed Reply to Interaction
Reply or update reply to an interaction with an embed message.
Modal Reply to Interaction
Reply or update reply to an interaction with a text entry modal.
Get Interaction Message Data
Get message data from an interaction.
Send or Edit Text Message
Send or Edit a text-only message
Send TTS Message
Send a text-to-speech message
Send or Edit Embed Message
Send or Edit an embed message
Embed Button Builder
Create buttons for a embed message.
Add Button to Embed Button Builder
Add a button to a embed button builder.
Embed Field Builder
Create fields for an embed.
Add Field to Embed Field Builder
Add a field to a embed field builder.
Embed Dropdown Builder
Create a dropdown for an embed.
Add Option to Dropdown Builder
Add a dropdown option to a dropdown builder.
Delete Message
Delete a message
Get Message
Get a message with embed details.
Get Messages
Get messages from a channel.
Bulk Purge Messages
Bulk delete the last messages in a channel.
Pin Message
Pin a message
Unpin Message
Unpin a message
Publish Message
Publish an announcement message to all channels following the announcement channel.
Get Pinned Messages
Get pinned messages from a channel.
Autocomplete Response Builder
Build an autocomplete response for a command.
Add Option to Autocomplete Response Builder
Add an option to a autocomplete response builder.
Autocomplete Response Interaction
Respond to an autocomplete interaction with the options.
Get User
Retrieve a Discord user's information by their ID.
Create DM Channel
Create a DM channel with a user.
Get Server Member
Retrieve a Discord server member information by their ID.
Get Highest Role Position of Member
Retrieve the position of the highest role of a member in a server.
Get Server Members
Retrieve members of a Discord server.
Kick Server Member
Kick a member from a server.
Ban Server Member
Ban a member from a server.
Unban Server Member
Unban a member from a server.
Get Server Bans
Retrieve a list of banned users in a server.
Timeout Server Member
Timeout a member from a server.
Assign Role
Assign a role to a user.
Remove Role
Remove a role from a user.
Change Member Nickname
Change a member's nickname in a server.
Get Server
Retrieve a Discord server's information by its ID.
Get Servers
Retrieve a list of Discord servers the bot is a member of.
Update Server
Update a Discord server's information by its ID.
Leave Server
Leave a Discord server by its ID.
Get Channel
Retrieve a Discord channel's information by its ID.
Get Channel
Retrieve a Discord channel's information by its ID or name.
Create Channel
Create a text/voice/stage/etc channel or channel category in a server.
Modify Channel
Modify a channel's information by its ID.
Move Channel
Move a channel to a new category.
Move Member to Voice Channel
Move a member from one voice channel to another.
Get Channels
Retrieve a Discord server's channels by its ID.
Delete Channel
Delete a Discord channel by its ID.
Trigger Typing Indicator
Trigger a typing indicator in a channel.
Edit Channel Permissions
Edit channel permission overwrite for a user or role.
Delete Channel Permission
Delete a channel permission overwrite for a user or role.
Create Invite
Create an invite for a channel.
Get Invite
Retrieve an invite's information by its code.
Get Channel Invites
Retrieve a list of invites for a channel.
Get Server Invites
Retrieve a list of invites for a server.
Delete Invite
Delete an invite by its code.
Start Thread From Message
Start a thread from a message.
Start Thread From Channel
Start a thread from a channel.
Create Forum Thread
Create a thread in a forum channel.
Get Forum Channel Available Tags
Get the tags of a forum channel.
Update Forum Thread Tags
Update the tags of a forum thread.
Join Thread
Join a thread.
Leave Thread
Leave a thread.
Add Thread Member
Add a member to a thread.
Remove Thread Member
Remove a member from a thread.
Archive Thread
Archive a thread.
Unarchive Thread
Unarchive a thread.
Lock Thread
Lock a thread.
Unlock Thread
Unlock a thread.
Pin Thread
Pin a thread.
Unpin Thread
Unpin a thread.
Create Webhook
Create a webhook in a channel.
Get Webhooks
Get all webhooks in a channel.
Delete Webhook
Delete a webhook.
Modify Webhook
Modify a webhook.
Execute Webhook
Send a message with a webhook.
Get Reactions
Get all reactions from a message.
Get Reactions Count
Get number of reactions from a message.
Add Reaction
Add a reaction to a message.
Remove Reaction
Remove a reaction from a message.
Remove All Reactions
Remove all reactions from a message.
Remove User Reaction
Remove a user's reaction from a message.
Get Roles
Get all roles in the specified server.
Update Role
Update a role in the specified server.
Create Role
Create a role in the specified server.
Get Role
Get a role in the specified server.
Delete Role
Delete a role in the specified server.
Get @everyone Role
Get the @everyone role in the specified server.
Get Emojis
Get all emojis from a server.
Get Emoji
Get an emoji by ID.
Create Emoji
Creates a new emoji in a server
Modify Emoji
Modifies a given emoji in a server.
Delete Emoji
Deletes a given emoji in a server
Create Scheduled Event
Creates a scheduled event.
Get Scheduled Event
Gets a scheduled event.
Get Scheduled Events
Gets a list of scheduled events.
Modify Scheduled Event
Modifies an existing scheduled event.
Delete Scheduled Event
Deletes a scheduled event.
Get Current Date and Time
Get the current UTC date and time in various formats.
Get UUIDv7 Creation Time
Get the creation time of a UUIDv7.
Parse Unix Time
Parse a Unix timestamp into a human-readable date and time.
Get Snowflake Timestamp
Convert a Discord snowflake ID into a creation date and time.
Parse Relative Time
Parse a user-provided relative time string into a Unix timestamp.
Modify Time
Add or subtract time from a Unix timestamp.
Get Specific Time
Get a specific time in the future or past in a variety of formats.
Truncate Time
Truncate a Unix timestamp to a given period.
Parse Month Name
Parse a month name into a number.
Parse Date and Time
Parse a date and time into a Unix timestamp with a variety of parsing options.
Standard Format Date and Time
Format a Unix timestamp into a standardized date and time string.
Realtime Log
Log a message to the realtime log.
Log Error
Log an error to the errors dashboard page.
Get Error Details
Get the details of an error.
Discord API Ping
Get the current latency of Inventor's connection to the Discord API.
Change Bot Status
Change the bot's status.
Get Server Count
Get the number of servers the bot is currently a member of.
Loop
Loop over a set of blocks a specified number of times.
Custom Loop
Loop over a customized range of numbers.
Exclude From Analytics
Exclude the current flow run from analytics.
Get Global Variable
Get the value of a global variable.
Get Global Variables
Get all global variables.
Global Variable Search
Get global variables with a specified prefix, name, and/or value.
Create or Update Global Variable
Create or update a global variable.
Increment or Decrement Global Variable
Increment or decrement a global variable.
Delete Global Variable
Delete a global variable.
Redact Secrets
Redact portions of a string, to prevent secrets from being exposed (in logs, etc.) while maintaining the ability to debug.
Get Bot Details
Get details and token of the bot.
Generate Snowflake ID
Generate a unique Snowflake ID.
Check Permission
Check if a permission is present in a bitfield.
Send Data with Custom ID
Send up to 5 fields of data to the next flow by sending it through a interaction Custom ID.
Get Data from Custom ID
Retrieve up to 5 fields of data that were sent through a Custom ID interaction.
Get Plugin Settings
Get the values of user-defined plugin settings.
Create Local Variable
Create a local variable.
Update Local Variable
Assign a new value to a local variable retroactively.
Increment or Decrement Local Variable
Increment or decrement a local variable.
Remove Line from Local Variable
Remove the top or bottom line from a local variable.
Append New Line to Local Variable
Append a new line the end of a local variable.
Send Network Request
Send a HTTPS request to a URL.
Convert HTML to Markdown
Convert HTML to Markdown.
Escape JSON Field
Escape a string to be used as a JSON field.
Parse JSON
Retrieve a value from a JSON string.
Format JSON
Indent a JSON string for readability.
Generate Form Body
Generate a HTTP form body from a list of key-value pairs.
Respond to Incoming Webhook
Respond to an incoming webhook request with a custom status code and response body.
Lookup by ID
Lookup a row in a database by its ID.
Get Row by Values
Lookup a row in a database by up to 5 column values.
Get Rows by Values
Get rows in a database matching specified column values.
Create Row
Create a new row in a database.
Lookup by Value or Create
Lookup a row in a database by a value in a column or create it if it does not exist.
Update by Value or Create
Update or create a database row by a value.
Get Row Count
Get the number of rows in a database.
Get Random Row
Get a random row from a database.
Get Random Rows
Get a specified number of random rows from a database.
Get Random Row by Value
Get a random row from a database within a search value in a column.
Get Random Rows by Value
Get a specified number of random rows from a database within a search value in a column.
Get Rows
Get all rows in a database.
Get Rows Sorted by Column
Get all rows in a database sorted by up to 3 columns.
Update Row
Update a row in a database.
Delete Rows by Value
Delete one or more rows in a database that match a value in a column.
Delete Row
Delete a row in a database.
Math Operations
Perform addition, subtraction, multiplication, division, modulo and exponent operations.
Math Operations (Float)
Perform addition, subtraction, multiplication, division, modulo and exponent operations with floating point numbers.
Truncate Float
Truncate a floating point number to a specified number of decimal places.
Absolute Value
Get the absolute value of a number.
Square Root
Get the square root (sqrt) of a number.
Logarithm
Get the logarithm of a number with a specified base.
Factorial
Calculate the factorial of a number.
Rounding (Round)
Round a number to the nearest whole number.
Rounding (Floor)
Round a number down to the nearest whole number.
Rounding (Ceil)
Round a number up to the nearest whole number.
Random Number Generator
Generate a random number using specified minimum and maximum values.
Passphrase Generator
Generate a random passphrase with a specified number of words.
If Number is in Range
Check if a number is in a specified range.
If Number is Close to Other Number
Check if a number is close to another number within a specified tolerance.
If Value is Number
Check if a value is a number.
Hex to Int
Convert a hexadecimal number to an integer.
Int to Hex
Convert an integer to a hexadecimal number.
String Length
Get the length of a string.
String Split List
Split a string into a list of strings with a deliminator.
Split String Iterator
Iterate over a string seperated by a deliminator.
Split String Iterator (Randomized)
Iterate over a string seperated by a deliminator in a random order.
String Contains Count
Count the number of times a substring appears in a string.
String Replace
Replace a substring with a new substring within a string.
String to Lowercase
Convert a string to lowercase.
String to Uppercase
Convert a string to uppercase.
String Trim Prefix
Remove a prefix from a string.
String Trim Suffix
Remove a suffix from a string.
Truncate String
Truncate a string to a certain length.
Base64 Encode
Encode a string to Base64.
Base64 Decode
Decode a Base64 string.
Format Number
Format a number with commas.
Generate UUIDv4
Generate a UUIDv4 (fully-random).
Generate UUIDv7
Generate a UUIDv7 (time-based).
Parse Color
Parse a color string (name or hex code) into a hex string.
URL Query Escape
Encode a string to be used as a URL parameter.
URL Query Unescape
Decode a string used as a URL parameter.
Bcrypt Hash String
Apply a one-way hash to a string using bcrypt.
Bcrypt Compare Hash
Compare a string to a bcrypt hash.
Verify HMAC
Verify a message against an HMAC signature. This is commonly used to verify webhooks.
MD5 Hash
Generate an MD5 hash of a string.
Sort Lines by Number Prefix or Suffix
Sort lines of text by the number at the beginning or end of each line
Truncate Split String List
Split a string into groups of a certain number of characters.
Truncate Split String Iterator
Iterate over a string by groups of a certain number of characters.
Scramble String
Scramble the order of characters in a string.
Regex Match
Check if a string matches a regular expression.
Regex Find Matches List
Find matches of a regular expression in a string.
Regex Find Matches Iterator
Iterate over matches of a regular expression in a string.
Regex Replace
Replace all matches of a regular expression in a string.
IFTTT Trigger
Triggers an IFTTT applet.
Custom Block
Custom Block
(there's 217 more blocks)
Step 3
You're done!
Simple flows can be created in minutes.
More complex flows can use custom blocks, conditionals, error handling, databases, global variables, and more.
Message Sent
A message is sent in any channel your bot can see.
If Statement
Message Content equals "hello"
Send a Message
Send a message or embed.
Message: "Hello, world!"

hello

Hello, world!
Ready to start building?
If you're looking for something easier, you can also check out pre-built plugins in the library.