All Guides

Writing Effective Instructions

Your instructions are the blueprint for your agent. Well-written instructions produce a focused, reliable workflow on the first try. Vague ones lead to guesswork and extra iterations. This guide teaches you how to write instructions that get the best results — whether you're creating a new agent or refining one in the Studio.

Getting Started·8 min read
1Describe the Full Workflow1/12
Phase 1Write instructions that nail it on the first try
01

Describe the Full Workflow

The best instructions tell Kindgi the complete story — what triggers the workflow, what data it works with, what it does step by step, and what the end result looks like. Think of it as explaining the task to a new colleague: give them the full picture so they can work independently.

A single detailed set of instructions beats three rounds of back-and-forth. Spend an extra minute upfront to save ten minutes of refinement later.

Trigger
What starts the workflow? A schedule, a new row, a manual run?
Data source
Where does the input come from? Which app, which sheet, which channel?
Actions
What should happen? Filter, create, send, update — in what order?
Result
What's the end result? An email sent, a card created, a row updated?
Prompt

TriggerI want an agent that reads new rows Data sourcefrom my Google Sheet called 'Leads', Actionsfilters for rows where the Status column is 'New', enriches each lead by researching their company, Resultthen adds the company size and industry back into the sheet and sends me a Slack summary in #sales-leads.

02

Name Your Apps and Fields

Don't say "my spreadsheet" — say Google Sheet called 'Q1 Leads'. Don't say "send a message" — say post to the #team-updates Slack channel. The more specific you are about which apps, which documents, and which fields, the more accurate your agent will be on the first try.

Vague data source
"Check my spreadsheet for new entries"
Specific data source
"Read rows from Google Sheet 'Candidates' where Interview Status is 'Pending'"
Vague output
"Send a notification when it's done"
Specific output
"Send a Slack message to #hr-ops with the candidate name and scheduled time"

Mention column names, channel names, board names, and label names exactly as they appear in your apps. This helps Kindgi map them correctly without guessing.

03

Categories vs. Tool Names

Some integrations belong to a supported category — like Email or Email Verification. When a category is supported, you can use the general term (e.g. "send an email" or "verify this email address") and Kindgi will ask you to choose which provider to use. For everything else, use the specific tool name.

Email
Say "send an email" → Kindgi asks: Gmail or Outlook?
Email verification
Say "verify this email" → Kindgi asks: NeverBounce, Emailable, ZeroBounce, or Mailboxlayer?
Trello
No category yet — say "create a Trello card" using the tool name directly
Slack
No category yet — say "post to Slack" using the tool name directly

Not sure which integrations are supported or which categories exist? Check our Integrations page for the full list of tested and available integrations.

04

Include Details Kindgi Can't Figure Out

Kindgi can work out a lot from context, but some details are specific to your setup — names, filters, values, and labels that only you know. Without them, Kindgi will need you to provide them during refinement anyway, so including them upfront saves a round of back-and-forth.

Which emails?
"Look for 'Etsy Order Confirmation for:' in the subject line" — not just 'check my email'
Which sheet?
"Google Sheet called 'Q1 Leads'" — not just 'my spreadsheet'
Which channel?
"Post to #sales-leads on Slack" — not just 'send a notification'
Which value?
"Set Status to 'entered'" — not just 'update the row'

Real example — This prompt includes enough specifics for Kindgi to build a working 4-step agent on the first try:

Prompt

Email filterExtract data from an incoming Etsy order emails - you can find them by looking for "Etsy Order Confirmation for: " in the subject line, Sheet destinationdrop it into a brand new row at the top of my Google Sheet, Actionsand then generate a new Trello card with all details, update the Google Sheet to show "entered". Sheet headers (optional)The sheet headers are: Order Number, Order Date, Customer Name, Customer Email, Item Name, Item Price, Quantity, Total Amount, Shipping address, Status.

You don't need to list every detail upfront — Kindgi can figure out a lot. But names, filters, and status values that are specific to your setup will save refinement later. See more in our Providing Specific Details guide.

05

State Conditions Explicitly

If your workflow should only act on certain items, spell out the conditions. For example, instead of saying "active leads", write "rows where the Status column equals 'Active'". Explicit filters ensure your agent processes exactly the right data.

Prompt

Filter by valueOnly process rows where the Status column is 'Pending' Filter by dateAND the Date column is today or earlier. Skip ruleSkip any row where the Email column is empty.

Filter by value
"Where Status is 'Active'" or "Where Priority is 'High'"
Filter by date
"Only rows from the last 7 days" or "Where Due Date is today"
Skip empty data
"Skip if Email is blank" or "Only if Name is not empty"
Combine conditions
"Where Status is 'New' AND Source is 'Website'"

When in doubt, over-specify. It's easier to loosen conditions later than to debug why your agent processed the wrong rows.

06

Describe Outputs in Detail

Tell Kindgi exactly what the output should look like. If you want an email, describe the subject line, body content, and who receives it. If you want a Trello card, specify the board, list, title format, and which fields go in the description. Detailed output specs = fewer surprises.

Prompt

DestinationCreate a Google Calendar event Formatwith the title 'Interview: {Candidate Name}', Durationset the duration to 45 minutes, Guestsadd the candidate's email as a guest, Contentand include the job title and resume link in the event description.

Format
How should the output be structured?
Destination
Where does it go? Which channel, sheet, board?
Content
What fields or data should be included?
Output detail checklist
Who receives the output (email recipient, channel, assignee)?
What format should it use (subject line, card title, message template)?
Which data fields go where (name in title, details in body)?
Any formatting preferences (bullet points, table, summary paragraph)?
Phase 2Refine your agent with precise, focused changes
07

Make One Change at a Time

When refining your agent in the Build tab, focus on a single change per message. Asking for three changes at once can lead to unexpected interactions. One clear instruction gives Kindgi the best chance of getting it exactly right.

Too much at once
"Add a Slack notification, change the filter to only active leads, and make it run every morning"
Just right
"Add a step that posts a summary to #sales-leads on Slack after all leads are processed"

After each change, test your agent to confirm it works as expected before making the next update. This makes it much easier to spot which change caused an issue.

08

Use Action Words

Start your instructions with a clear verb — add, remove, change, move, split, combine. This tells Kindgi exactly what operation to perform instead of leaving it to interpretation.

Add
"Add a step that sends a Slack message after the email is sent"
Remove
"Remove the step that updates the spreadsheet status"
Change
"Change the email subject line to include the company name"
Move
"Move the Slack notification to run before the email step"
Split
"Split the processing step into two: one for filtering and one for enrichment"
Combine
"Combine the two Slack messages into a single summary message"
Prompt

ActionChange Targetthe filter Conditionto only include rows where the Priority column is 'High' or 'Critical'.

09

Select the Step, Then Describe the Change

You can click any step in the Build tab to select it before typing your update. This tells Kindgi exactly which step you're targeting. You can also click the schedule card to edit the schedule specifically. Pair your selection with a clear description of what to change, and the update will be spot-on every time.

Select first
Click the step you want to change in the Build tab
Then describe
"Add the interviewer's name to the email body"

Selecting a step before typing your instruction keeps the context focused — Kindgi applies the change to that exact step instead of guessing which one you mean.

Phase 3Power-user techniques for complex workflows
10

Describe Iteration Clearly

When your agent needs to repeat an action for multiple items (e.g. send an email for each row, create a card for each lead), say so explicitly. Mention what the list is, what to do with each item, and whether anything should happen after all items are processed.

Prompt

The listFor each row in the sheet where Status is 'Pending', Per-item actioncreate a Trello card on the 'Outreach' board in the 'To Do' list with the lead's name as the title and their email and company in the description. After all itemsAfter all cards are created, post a count to #sales on Slack.

The list
"For each row", "For every new lead", "For all pending items"
Per-item action
What happens for each individual item
After all items
Optional summary, notification, or cleanup
11

Use Instruction Templates

Here are proven structures you can copy and adapt for common automation patterns. Replace the bracketed placeholders with your own details.

Data Processing Pipeline — Read from one app, transform, and write to another.

Prompt

Data sourceRead rows from [Google Sheet / Airtable / etc.] called '[Sheet Name]' where [Column] is '[Value]'. ActionFor each row, [action: look up / enrich / transform] using [App], Resultthen [update the row / create a record / send a notification] in [Destination App] with [specific fields].

Notification Agent — Monitor a source and alert your team.

Prompt

MonitorCheck [Data Source] for [condition, e.g. new entries / status changes / overdue items]. NotifyWhen found, send a [Slack message / email / SMS] to [recipient / channel] that includes [specific details like name, date, status, link].

Multi-Step Workflow — A sequence of actions across several apps.

Prompt

InputWhen I run this agent with a [input, e.g. spreadsheet URL / project name], Step 1first [Step 1: read / fetch / collect data from App A]. Step 2Then [Step 2: process / filter / enrich the data]. Step 3Next [Step 3: create / update records in App B]. Step 4Finally [Step 4: notify / summarize / report via App C].

12

Avoid Common Mistakes

These are the most frequent pitfalls we see. Avoiding them will save you time and produce better agents on the first try.

Too vague
"Make an agent that handles my leads." What does 'handle' mean? Be specific about the action.
No app names
"Get data from my database and send it somewhere." Name the apps: Google Sheets, Slack, Trello, etc.
Missing conditions
"Process the new entries." What makes an entry 'new'? A status field? A date range? Spell it out.
Assumed context
"Do the same thing we set up last time." Each set of instructions should be self-contained with all the details.
Multiple unrelated changes
"Add email, change the filter, rename the agent, and add a schedule." Split into separate messages.
Technical jargon
"Execute a REST POST to the webhook endpoint." Instead, describe what you want to happen in plain language.
Pre-submit checklist
Did I name every app and data source involved?
Did I specify which fields, columns, or channels to use?
Did I state all conditions and filters explicitly?
Did I describe what the output should look like?
Is this a single, focused request (not multiple changes)?
Would a teammate understand this without extra context?

You're all set

Your Writing Effective Instructions guide is complete.

KindgiIntelligent automation for professional workflows
Writing Effective Instructions Guide | Kindgi