Everything you can do with your WagBot site from Discord — updated as features are added.
Send plain-language messages to the WagBot bot in Discord to manage your site. The sections below cover every supported operation.
Update any of the following fields by describing what you want in plain language.
business_name — The name of the business/site, displayed in the navigation bar, the footer, and in the browser tab title. Also accepts 'site name.'
logo_path — Set by uploading an image (see Section 6: Image Uploads). We recommend a .png with a transparent background.
favicon_path — The small icon shown in browser tabs next to the page title. Must be an .ico file. Set by uploading a .ico file (see Section 6: Image Uploads)
Colors are stored as hex values in the format #rrggbb. You can provide any common color name (such as "red" or "navy blue") and the bot will convert it to the appropriate hex value automatically.
primary_color — Main brand color; used for the nav bar, footer, and hero block background by default.
secondary_color — Supporting brand color; used for buttons
accent_color — Highlight color; used on links, post prices, and tag backgrounds
text_color — Default color for all body text on the site
bg_color — Background color for all pages
font_choice — The typeface used across the entire site:
inter — modern, clean sans-serifmerriweather — traditional serif, suited to reading-heavy contentroboto — neutral, versatile sans-serifplayfair — elegant high-contrast serif, suited to premium or editorial lookssystem — the visitor's device default font; no web font is loadednav_style — controls how the nav bar behaves while scrolling:
top-fixed — always visible at the top of the screen, even when scrollingtop-sticky — scrolls away, then reappears when the user scrolls back uptop-static — stays at the top of the page and scrolls away as the user scrolls downsidebar-left — a vertical panel fixed to the left side of the pagesidebar-right — a vertical panel fixed to the right side of the pagenav_layout — controls where the logo and nav links appear within the nav bar:
logo-left — logo on the left, nav links on the rightlogo-center — logo centered, nav links split to either sidelogo-right — logo on the right, nav links on the leftlinks-center — nav links centered across the full width of the nav barnav_mobile — controls how navigation is presented on small screens:
hamburger — nav links are hidden on small screens; a hamburger icon (≡) appears and opens a dropdown when tappedalways-hamburger — hamburger icon shown on all screen sizes, not only mobileoverlay — tapping the menu icon opens a full-screen overlay displaying the nav linksnav_color_source — controls which brand color is used as the nav bar background. The nav link and text color is calculated automatically for readable contrast and cannot be set separately.
primary — use the primary_color setting as the nav bar backgroundsecondary — use the secondary_color setting as the nav bar backgroundcontact_phone — business phone number, displayed in the contact sections
contact_email — business contact email address
contact_address — business mailing or street address
business_hours — hours per day of the week, or "Closed". Say it in plain language and the bot converts it to the correct format. When you mention only specific days, only those days are updated — all others keep their current values.
Shown in the footer. Three platforms are supported: Instagram, Facebook, and YouTube. You can add, update, or remove a single platform without affecting the other two.
social_links — set a full URL to display a platform's link; leave blank to hide it
footer_social_style — how social links are displayed in the footer:
text — plain text links showing the platform nameicons — each platform's brand icon as a small circular buttonEach page has numbered slots. Each slot holds one block. Update any non-fixed block by naming the page, slot, and field.
The Home page has 4 block slots. The About page has 3 block slots. The Contact page has 2 slots, with the contact block fixed in slot 2. The posttype pages have 2 slots, with the post list block fixed in slot 2.
The blocks and their fields are listed below.
headline — the main heading text displayed prominently in the block
subtext — supporting text displayed below the heading
bg_image — background image for the block. Set by uploading an image (see Section 6) or by providing an external image URL.
bg_color — block background color (hex or color name). Defaults to the primary color.
cta_label — call-to-action button text. Clear this field to hide the button entirely.
cta_url — the destination when the button is clicked. Can be an external URL or an internal page link (see Section 11).
text_color — overrides the default text color for this block only (hex or color name)
headline — section heading displayed above the body text
body — the main paragraph text. To make a targeted edit or append text, describe the change in plain language — the bot applies only the exact change you describe. To replace the entire body, provide the full replacement text.
align — text alignment: left | center | right
bg_color — block background color (hex or color name)
headline — main heading text
subtext — supporting text displayed below the headline
cta_label — button text. Clear this field to hide the button.
cta_url — button destination URL or internal page link (see Section 11)
align — alignment of block content: left | center | right (default: center)
bg_color — block background color (hex or color name)
images — managed via upload and removal operations (see Section 8: Carousel Images)
captions — caption text for each image, matched by position
interval — how long each slide is shown before advancing, in milliseconds. 1 second = 1000.
show_dots — show navigation dots below the carousel (0 or 1)
image — the image to display. Set by uploading an image (see Section 6) or by providing an external image URL.
caption — text displayed below the image
link_url — if set, clicking the image navigates to this URL. Can be an external URL or internal page link (see Section 11). Clear this field to remove the link.
width — how wide the image is displayed on the page:
full — spans the full width of the page, edge to edgelarge — wide with a small margin on each sidemedium — centered at roughly half the page widthsmall — narrow, centeredDisplays the most recent post of a given type.
post_type — which post type to display. Use the page name as it appears in your navigation (e.g. "Cars" or "Blog"), not the internal name "posttype1".
headline — section heading displayed above the post preview
show_image — show the post's featured image (0 or 1)
show_excerpt — show an excerpt from the post body (0 or 1)
cta_label — text on the link that leads to the full post
Displays a grid of recent posts.
post_type — which post type to display. Use the page name as it appears in your navigation (e.g. "Cars" or "Blog"). Set to all to pull from all enabled post types — one most-recent post per enabled type, up to 3 total.
headline — section heading displayed above the grid
count — how many posts to display
show_image — show the featured image for each post (0 or 1)
show_date — show the publication date for each post (0 or 1)
show_excerpt — show an excerpt from each post's body (0 or 1)
video_url — full URL of the YouTube video to embed
headline — optional heading displayed above the video. Clear this field to show no heading.
caption — optional text displayed below the video. Clear this field to show no caption.
autoplay — play the video automatically when the page loads (0 or 1)
A page section displaying your social links, separate from the site-wide footer social links.
headline — a section heading stored with this block; not currently displayed on the site
style — how the platform links are displayed:
buttons — a pill-shaped bordered button per platform with the platform name as texticons — a filled circular button per platform showing the platform's brand iconThe phone number and email address shown by this block come from the site-wide contact_phone and contact_email settings (see Section 1). They cannot be overridden at the block level.
headline — a section heading stored with this block; not currently displayed on the site
show_hours — show the business hours (0 or 1)
show_address — show the business address (0 or 1)
show_map — show an embedded map (0 or 1)
map_query — the search query used to locate the business on the embedded map. Clear this field to remove the query.
Individual testimonials are managed via add and remove operations — see Section 7: Testimonials.
headline — a section heading stored with this block; not currently displayed on the site
interval — how long each testimonial is shown before rotating to the next, in milliseconds. 1 second = 1000.
Permanently in contact page slot 2. Cannot be swapped to another slot and cannot be hidden. The form always collects the visitor's email address. The name and message fields are optional and can be individually shown or hidden.
headline — the heading displayed above the contact form
button_label — the text on the form's submit button
show_name — show the Name input field on the form (0 or 1)
show_message — show the Message textarea on the form (0 or 1)
success_message — the message shown to the visitor after a successful submission
The following blocks are permanently assigned to specific slots. They cannot be swapped to a different slot and cannot be hidden.
contact_form — contact page slot 2 (see Contact Form above for configurable fields)post_list — slot 2 on each post-type page; controls how the list of posts is displayed
layout: list (default) — stacked layout: thumbnail on the left, title/date/excerpt on the rightlayout: card — grid layout: featured image fills the top of each card, with title/date/excerpt/price belowReplace any non-fixed block with a different block type. All current content in that slot is wiped. Requires confirmation before executing.
Available types: hero, text_block, text_cta, image_carousel, single_image, latest_post, post_grid, youtube_embed, social_links, business_info, testimonials
The contact_form and post_list types are fixed to their specific slots and cannot be swapped to other slots.
Toggle visibility of any non-fixed block. Hidden blocks remain in the database but are not rendered on your site.
Your site has up to three post-type pages (for example, "Cars", "Blog", "Listings"). When talking to the bot, refer to the post type by its name as it appears in your navigation — not by "posttype1", "posttype2", or "posttype3".
Each post is assigned a numeric ID when it is created. The bot reports the ID in its response. The ID also appears in the post's URL on your site (for example, a Cars post with ID 42 would appear at /cars/42).
If you attach images when creating a post, say "use as featured image" to designate one as the featured image — all other attachments go to the gallery. Attach images to the same message as the creation request.
Provide the post ID and a plain-English description of the change. This is for targeted edits to existing content only — fix a typo, replace a specific word or phrase, or append a sentence you provide. The bot applies only the exact change you describe and does not add or generate additional text.
title — replaces the post title; also generates a new URL slug
price — sets or updates the price field
tags — you can replace the entire tag list, append one or more tags, or remove specific tags
Permanently and irreversibly deletes the post and all associated data. Requires confirmation before executing (see Section 10).
Each post-type page has settings that control how it appears in the navigation and how its posts are laid out. These apply to the page as a whole, not to individual posts.
nav_label — the name shown in the navigation bar for this page. Changing this name also changes the page's URL slug (e.g. renaming to "Cars" makes the URL /cars). This is also the name used when referring to this post type in all other bot commands.
enabled — whether this post-type page is shown in the navigation and accessible on the site (1 to show, 0 to hide)
post_layout — the layout used to display posts on this page:
editorial — article-style layout with text emphasismedia_lead — layout where the featured image leadssidebar — layout with a sidebar panelcard — grid of cards, one per postUpload images by attaching them to your Discord message. Specify where the image should go.
Accepted formats: JPEG, PNG, GIF, WebP. Favicons must be .ico format. Maximum file size: 10 MB per image.
Provide the quote text. Author name and role/title are optional. The testimonial is appended to the existing list.
Remove by author name (case-insensitive). Use "remove all testimonials" to clear the entire list.
Ask the bot anything about your current site state and it will answer from your live data.
Returns the 25 most recent messages submitted through your site's contact form. Each submission shows the date, the sender's name, email address, and message. Submissions that have not been retrieved before are marked as new; they are marked as read after being retrieved.
Permanently deletes contact form submissions. You can delete one submission by its ID, multiple submissions by providing multiple IDs, or all submissions at once. The ID numbers are shown in the submissions list. All delete operations require confirmation before executing (see Section 10).
Multiple changes in a single message are processed together. Note that destructive operations that require confirmation (such as swap block type) cannot be combined with other confirmation-required operations in the same message.
The following operations require confirmation before they execute:
The bot will describe exactly what it is about to do and ask you to confirm. Reply "yes" to proceed, or "cancel" to abort. If you do not respond within 60 seconds, the operation is cancelled automatically and nothing is changed.
When setting a CTA or link URL to an internal page, say the page name and the bot will resolve the correct internal reference. If you rename a post type later, internal links that use this format stay correct automatically.
Available pages: home, about, contact, and your three post-type pages.