Effective Prompts
The quality of a Copilot-generated workflow depends directly on how clearly you describe the task. This guide shows the patterns that produce the best results from the Genzbots AI.
The Formula
- Goal — What should the workflow do? (verb + noun)
- Data — What are the inputs? File name, sheet, URL, variable name?
- Logic — Any conditions, loops, or filters?
- Output — What should happen at the end? File saved? Email sent? Log printed?
Vague vs Specific
| ❌ Vague | ✅ Specific |
|---|---|
| "Make an Excel workflow" | "Read all rows from invoices.xlsx sheet 'Sheet1', filter where Status == 'Unpaid', and write the result to unpaid.xlsx" |
| "Handle errors" | "Wrap the HTTP Request activity in a Try Catch with 3 retries; log the error message and set jobStatus = 'Failed' in the Catch block" |
| "Send email" | "Send SMTP email to admin@company.com with subject 'Daily Report' and body that includes the ${"{"}successCount{"}"} and ${"{"}failCount{"}"} variables" |
| "Process the data" | "For each row in the dataTable variable, extract the CustomerEmail column value and call POST https://api.example.com/notify with a JSON body" |
Reference Your Variables
Copilot knows the variable names you've declared. Reference them by name:
workflow
| 1 | "Assign the result of ExcelReadRange to my existing variable 'salesData'" |
| 2 | "Use the 'outputFolder' variable for the file path in WriteTextFile" |
| 3 | "Filter the 'invoiceTable' DataTable where Amount > {minAmount{"}"}" |
Ask for Specific Activity Types
workflow
| 1 | "Use a For Each loop to iterate, not a While loop" |
| 2 | "Add a Try Catch with a Finally block that closes the browser" |
| 3 | "Use an If condition to check if fileExists before reading" |
| 4 | "Use Invoke Workflow to call ProcessInvoice.gbw for each row" |
Follow-Up Refinement
Copilot remembers the workflow it just generated within the same chat session. Refine iteratively:
workflow
| 1 | // First message: |
| 2 | "Generate a login workflow for Chrome at https://app.example.com" |
| 3 | |
| 4 | // Follow-up: |
| 5 | "Add a 3-retry Retry activity around the Click on the Submit button" |
| 6 | |
| 7 | // Another follow-up: |
| 8 | "Change the browser from Chrome to Edge" |
Debugging Prompts
workflow
| 1 | "My workflow throws 'Selector not found' on the Click activity targeting #submitBtn. |
| 2 | The page loads slowly. How do I fix this?" |
| 3 | |
| 4 | "ExcelReadRange returns an empty DataTable even though the file has data. |
| 5 | The file path is {excelPath{"}"} and the sheet name is 'Data'. What could be wrong?" |