# Automation Steps
Every command in HARPA is a sequence of automation steps that are run one by one. And each step is designed to perform a single function. HARPA offers 10+ automation step types that can be used in creating custom commands, and the list grows release to release.
To add a step to your custom command, press ADD STEP button:
If you are new to Custom Commands, focus on SAY, ASK, GPT steps first.
Then pick the step type to create and add to your new command:
- SAY, ASK, GPT - these steps are used to send messages to chat, ask for parameter values, and send AI requests.
- NAVIGATE - navigates opened tab to a specific URL.
- WAIT - pauses command execution until page stops updating, text or element appears on the page, JavaScript function returns true, or a timeout in milliseconds is reached.
- REQUEST - sends data to a Webhook, calls remote API or fetches web page HTML.
- CLICK, PASTE, SCROLL - click page elements and insert text into page forms and inputs.
- EXTRACT - retrieves content of web elements on page.
- GROUP, LOOP, JUMP - group steps together, loop over data items and control command flow.
- RUN JS - runs JavaScript code in scope of the opened web page.
- COMMAND - calls other commands; allows building higher-order commands.
- CLEAR, STOP - erase chat history or terminate current command.
- CALC - sets or modifies parameter values, merges lists, extracts data.
Most steps support labels, conditions and silencing:
- When silenced, steps will not print messages to chat.
- When labeled, steps can be jumped to using JUMP step.
- When conditioned, steps will only run if the condition is met.
The next guide dives into the basic AI automation steps: SAY, ASK, GPT.