S

Knowledge Pack Files

SideButton Marketing Website Knowledge Pack Files

Browse the source files that power the SideButton Marketing Website MCP server knowledge pack.

Available free v1.0.3 Browser
$ sidebutton install sidebutton.com
Download ZIP

Prerequisites

  • Authenticated session (portal access)
  • Cookie consent dismissed
  • At least one online agent (for dispatch testing)
  • Jira credentials configured in Settings > General (for Jira trigger tests)

Phase 1: Page Load & Structure

#TestMethodPass Criteria
1.1Automations page loadsnavigate to /portal/automationsH1 "Automations" visible
1.2Automation countsnapshot"N automations" text below heading
1.3New Automation buttonsnapshotbutton "+ New Automation" in top-right, sky blue outlined
1.4Sidebar activesnapshot"Automations" link active in sidebar navigation
1.5Form hidden by defaultsnapshotCreate form not visible on initial load

Phase 2: Empty State

#TestMethodPass Criteria
2.1Empty state iconsnapshot (when 0 automations)Refresh/cycle icon centered in content area
2.2Empty state textsnapshot"No automations yet" heading
2.3Empty state hintsnapshot"Automations trigger workflows based on events from Jira, SideButton, or a cron schedule"
2.4Count shows 0snapshot"0 automations" text below heading

Phase 3: Create Form — Structure

#TestMethodPass Criteria
3.1Open formclick button "+ New Automation" → snapshotForm appears with Name, WHEN, WHAT sections
3.2Close form (X)click X button on form → snapshotForm hidden, list visible
3.3Toggle formclick "+ New Automation" twice → snapshotForm opens then closes
3.4Name inputsnapshot#form-name text input with placeholder "My automation"
3.5Trigger type dropdownsnapshot#form-trigger-type with options: "— Select Trigger —", "Jira", "SideButton", "Cron"
3.6Workflow dropdownsnapshot#form-workflow with "— Select Workflow —" default + 13 workflow options across all roles (SE, QA, PM, OPS, SD)
3.7Workflow IDs formatevaluate JS to list #form-workflow optionsValues use dash-separated IDs: se-work, qa-validate, pm-drive, pull-repos, sd-coverage (no agent_ prefix)
3.8All roles in workflowsevaluate JSAll 5 roles present: SE (4), QA (4), PM (2), OPS (1), SD (1) = 12 workflows total
3.9Agent dropdownsnapshot#form-agent default "Any available agent", lists agents
3.10Effort toggle buttonssnapshot#form-effort-group with Max / High / Medium — Medium selected by default (sky highlight)
3.11Cancel buttonsnapshot#form-cancel-btn visible
3.12Save buttonsnapshot#form-save-btn sky blue button

Phase 4: Trigger Type — Jira

#TestMethodPass Criteria
4.1Select Jira triggerselect "Jira" in #form-trigger-type → snapshotJira trigger properties area appears in #trigger-properties
4.2Jira unconfigured warningsnapshot (when Jira not configured)Yellow warning banner: "Jira connection required" with "Configure Jira URL, email, and API token in Settings to enable filters."
4.3Settings link in warningsnapshotlink "Settings" present inside warning banner, links to /portal/settings
4.4Filters hidden when unconfiguredsnapshotNo project/issue type/assignee/status dropdowns visible — replaced by warning
4.5Project filter (when configured)snapshot#jira-project select dropdown visible
4.6Issue type filter (when configured)snapshot#jira-issue-type select dropdown visible
4.7Assignee search (when configured)snapshot#jira-user text input with datalist autocomplete
4.8Status filter (when configured)snapshot#jira-status select dropdown visible
4.9All filters optionalleave all Jira filters blank → saveAutomation saves without Jira filters (matches all events)

Phase 5: Trigger Type — Cron

#TestMethodPass Criteria
5.1Select Cron triggerselect "Cron" in #form-trigger-type → snapshotCron-specific properties appear
5.2Cron expression inputsnapshot#cron-schedule text input visible
5.3Preset buttonssnapshot.cron-preset buttons visible: "Every hour", "Daily 9am", "Weekdays 9am", "Weekly Mon 9am"
5.4Click preset fills inputclick "Daily 9am" preset → snapshot#cron-schedule value populated with cron expression
5.5Custom expressiontype custom expression in #cron-scheduleInput accepts custom cron format

Phase 6: Trigger Type — SideButton

#TestMethodPass Criteria
6.1Select SideButton triggerselect "SideButton" in #form-trigger-type → snapshot"SIDEBUTTON TRIGGER FILTERS" section heading appears
6.2Workflow filtersnapshot#sb-workflow labeled "Workflow (optional)", default "Any workflow". Lists all 13 workflows as Title-Case-Dash names
6.3Event type filtersnapshot#sb-event-type labeled "Event Type (optional)", default "Any event". Options: "Completed", "Started"
6.4Layout: side-by-sidescreenshotWorkflow and Event Type dropdowns are side-by-side; Agent on separate row below
6.5Agent filtersnapshot#sb-agent labeled "Agent (optional)", default "Any agent". Includes "Same agent (from triggering job)" option
6.6Info textsnapshot"Agent name and ticket URL (if present) from the triggering job will be passed to the dispatched job." visible below agent filter

Phase 7: Workflow Params & Template Variables

#TestMethodPass Criteria
7.1Select workflow shows paramsselect "SE Agent: Implement Fix + PR" in #form-workflow → snapshot"WORKFLOW PARAMETERS" heading appears with param fields
7.2Ticket URL paramsnapshot#param-ticket-url text input visible with help text: "Ticket URL passed to the workflow. Use {{trigger.ticket_url}} for auto-mapping."
7.3Hint paramsnapshot#param-hint textarea, labeled "hint (optional)", placeholder "Static instructions for the workflow.."
7.4ticket_url auto-fill (SideButton)select SideButton trigger + workflow → snapshot#param-ticket-url auto-filled with {{trigger.ticket_url}}
7.5ticket_url auto-fill (Jira)select Jira trigger + workflow → snapshot#param-ticket-url auto-filled with {{trigger.ticket_url}}
7.6ticket_url empty (Cron)select Cron trigger + workflow → snapshot#param-ticket-url is empty (no auto-fill for Cron)
7.7Available vars — SideButtonsnapshot below hint (SideButton trigger)"Available: {{trigger.ticket_url}}, {{trigger.workflow}}, {{trigger.agent}}, {{trigger.event}}"
7.8Available vars — Jirasnapshot below hint (Jira trigger)"Available: {{trigger.ticket_url}}, {{trigger.project}}, {{trigger.assignee}}, {{trigger.status}}, {{trigger.issue_type}}, {{trigger.issue_key}}"
7.9Available vars — Cronsnapshot below hint (Cron trigger)"No trigger variables available"
7.10Change workflow updates paramsselect different workflow → snapshotParams section still shows ticket_url + hint (same for all workflows)
7.11All workflows show same paramsselect OPS/PM/SD workflow → snapshotticket_url + hint params shown (same as SE/QA workflows)

Phase 8: Create Automation (Happy Path)

#TestMethodPass Criteria
8.1Create Jira automationfill name + select Jira trigger + select workflow (e.g. "QA: Review PR Fix") + click SaveAutomation appears in list, form closes
8.2Create Cron automationfill name + select Cron + enter expression + select workflow + SaveAutomation appears with violet "Cron" badge
8.3Create SideButton automationfill name + select SideButton + select workflow + SaveAutomation appears with emerald "SideButton" badge
8.4Count updatessnapshot heading areaAutomation count increases after creation
8.5Default effortcreate without changing effort → check saved configEffort defaults to Medium (Sonnet)
8.6Custom effortselect "Max" effort → save → verifyEffort saved as Max
8.7Specific agentselect specific agent → save → verifyAgent saved correctly
8.8With workflow paramsfill ticket URL + hint → save → verifyParams saved in action_config

Phase 9: Automation List — Row Structure

#TestMethodPass Criteria
9.1Column headerssnapshot"Automation" + "Actions" columns visible
9.2Toggle switchsnapshot[data-toggle-automation] visible, emerald for enabled
9.3Automation name linksnapshotName is clickable link to /portal/automations/{id}
9.4Trigger type badgesnapshotColored pill: Jira (blue), Cron (violet), SideButton (emerald)
9.5Workflow labelsnapshotFormatted workflow name below automation name
9.6Edit buttonsnapshotPencil icon link to /portal/automations/{id}/edit
9.7Manual trigger buttonsnapshotPlay icon button
9.8Delete buttonsnapshotTrash icon button [data-delete-automation]

Phase 10: Enable/Disable Toggle

#TestMethodPass Criteria
10.1Disable automationclick toggle on enabled automation → snapshotToggle turns slate, row at 50% opacity
10.2Re-enable automationclick toggle on disabled automation → snapshotToggle turns emerald, row at full opacity
10.3Toggle non-destructivedisable → re-enable → snapshotAutomation preserved, no data lost
10.4Toggle API callcheck network or re-snapshotPUT /api/automations/:id/toggle called

Phase 11: Manual Trigger (List Page)

#TestMethodPass Criteria
11.1Trigger enabled automationclick play button on enabled automationAutomation fires, dispatch count may increase
11.2Trigger disabled automationclick play button on disabled automationVerify behavior (should still trigger — play button fires regardless)

Phase 12: Dispatch Count Badge

#TestMethodPass Criteria
12.1Badge visible after dispatchtrigger an automation → snapshotAmber "N jobs" badge appears on the row
12.2Badge links to queueclick amber badgeNavigates to /portal/queue?automation_id={id}
12.3No badge when 0 dispatchessnapshot automation with no dispatchesNo dispatch count badge shown

Phase 13: Edit Automation

#TestMethodPass Criteria
13.1Navigate to editclick pencil icon → verify URLURL is /portal/automations/{id}/edit
13.2Form pre-filledsnapshot edit pageName, trigger type, workflow, agent, effort all pre-populated
13.3Change namemodify name → save → verifyName updated in list
13.4Change trigger typechange from Jira to Cron → save → verifyTrigger type updated, badge changes color
13.5Change workflowselect different workflow → save → verifyWorkflow label updated in list
13.6Cancel editclick Cancel → verifyReturns to list, no changes saved

Phase 14: Detail Page

#TestMethodPass Criteria
14.1Navigate to detailclick automation name → verify URLURL is /portal/automations/{id}
14.2Config displayedsnapshotAutomation name, trigger type, workflow, agent, effort visible
14.3Toggle on detailclick #detail-toggle → snapshotToggle state changes, #detail-toggle-label updates ("Enabled"/"Disabled")
14.4Trigger buttonsnapshot#trigger-btn button visible
14.5Delete buttonsnapshot#delete-btn button visible

Phase 15: Manual Trigger Dialog (Detail Page)

#TestMethodPass Criteria
15.1Open trigger dialogclick #trigger-btn → snapshot#trigger-dialog modal appears
15.2Ticket URL inputsnapshot dialog#trigger-ticket-url optional input visible
15.3Dispatch without URLclick #trigger-confirm without URL → snapshotTriggers successfully, #trigger-result shows success with job ID
15.4Dispatch with URLenter ticket URL → click #trigger-confirm → snapshotTriggers with ticket URL passed to dispatched job
15.5Cancel dialogclick #trigger-cancel → snapshotDialog closes, no dispatch

Phase 16: Trigger Logs (Detail Page)

#TestMethodPass Criteria
16.1Logs section visiblesnapshot detail page#logs-content container visible
16.2Log entries after triggertrigger automation → navigate to detail → snapshotLog entries appear showing trigger event
16.3Log entry fieldssnapshotEach log shows: matched status, dispatched job ID (if matched), timestamp
16.4Pagination controlssnapshot (when >50 logs)#logs-prev and #logs-next buttons, #logs-info text
16.5Pagination navigationclick #logs-next → snapshotNext page of logs loaded

Phase 17: Delete Automation

#TestMethodPass Criteria
17.1Delete from listclick trash icon → confirm → snapshotAutomation removed from list
17.2Delete confirmationclick trash icon → snapshotConfirmation prompt appears before deletion
17.3Count decreasessnapshot heading areaAutomation count decreases after deletion
17.4Delete from detailnavigate to detail → click #delete-btn → confirmAutomation deleted, redirects to list

Phase 18: Edge Cases

#TestMethodPass Criteria
18.1Submit without nameleave name empty → click SaveValidation prevents save or shows error
18.2Submit without triggerleave trigger as "— Select Trigger —" → SaveValidation prevents save or shows error
18.3Submit without workflowleave workflow unselected → SaveValidation prevents save or shows error
18.4Duplicate namecreate two automations with same nameVerify behavior (may allow or reject)
18.5Long nameenter very long name → save → snapshotName accepted, no layout break
18.6Special characters in nameuse <script>, quotes, etc. in nameNo XSS, characters escaped properly
18.7Invalid cron expressionenter "invalid" in #cron-schedule → saveValidation rejects or warns
18.8Jira without configselect Jira trigger without Jira credentials in SettingsYellow warning banner with "Jira connection required" and Settings link; filter controls hidden

Phase 19: Cross-Module Integration

#TestMethodPass Criteria
19.1Queue link from badgeclick dispatch count badge → verify URL/portal/queue?automation_id={id} shows filtered items
19.2Dispatched jobs visibletrigger automation → navigate to Jobs → snapshotJob appears in Jobs list with correct workflow
19.3Queue items from automationtrigger automation → navigate to QueueQueue item with source="automation" visible
19.4Settings Jira dependencyremove Jira config → test Jira automationJira automation fails or shows config warning

Automation Tips

  • All form dropdowns (#form-trigger-type, #form-workflow, #form-agent) are native <select> elements — use select_option tool, not click
  • Effort buttons (#form-effort-group) are NOT a select — they are toggle buttons. Click the desired effort level directly
  • Trigger type change dynamically swaps the #trigger-properties content — always re-snapshot after changing trigger type
  • The #form-cancel-btn ID may differ between create and edit forms — use #form-cancel-btn or #form-cancel-btn-2
  • Jira assignee (#jira-user) uses datalist autocomplete — type partial name, then select from suggestions
  • Template variables ({{trigger.ticket_url}}) are literal text in the input — they get resolved at dispatch time
  • ticket_url is auto-filled with {{trigger.ticket_url}} for Jira/SideButton triggers; empty for Cron
  • Available variable hints change per trigger type — always re-snapshot after switching trigger type
  • Workflow IDs use dashes without agent_ prefix (e.g. se-work, qa-validate, pm-drive)
  • All 13 workflows across all roles are available — not limited to SE/QA
  • SideButton trigger: Workflow and Event Type are side-by-side; Agent is on a separate row
  • Manual trigger from list (play button) fires immediately without dialog; manual trigger from detail page opens a dialog
  • The detail page toggle (#detail-toggle) is a separate endpoint from the list toggle ([data-toggle-automation]) — both call PUT /api/automations/:id/toggle
  • Dispatch count badge only appears when dispatch count > 0
  • Delete uses browser confirm() dialog — SideButton automation can handle this by clicking OK on the dialog
  • Trigger logs paginate at 50 per page (not infinite scroll like Queue/Jobs)
  • Loop prevention: automation-dispatched jobs (source="automation") don't re-trigger automations
  • Effort default is Medium (Sonnet) — differs from Queue which defaults to High (Opus)
  • Jira unconfigured state: yellow warning banner replaces filter controls — test both states