How to Write Great Prompts for String

String is a powerful tool for building event-driven AI agents, automating workflows, and orchestrating data flows between web APIs. It is especially well-suited for problems that follow a clear "if this, then that" structure.

Here are examples of the types of prompts String is designed to handle:

  • "Build an agent that reviews new Gmail emails, identifies customer requests, drafts a response, and messages me on Slack to review the responses."
  • "When new customers are created in Snowflake, create them as contacts in HubSpot."
  • "Scrape Product Hunt every day at 8pm for the top new products of the day, summarize the launch announcements, and send them to me in an email the following morning at 7am."

These are event-based workflows that involve a trigger, one or more actions, and potentially some AI-driven processing along the way.

What String is not designed for:

  1. General questions
    Example: "What will the weather in San Francisco be like today?
  2. One-time tasks
    Example: "What meetings are on my calendar tomorrow?"
  3. Building front-end applications
    Example: "Create a website with a home page, pricing page, and a contact form."

If your prompt doesn’t describe a clear event or an API-based action, String will do its best to help, but the results may be inefficient, incorrect, or impossible to execute.

Why Good Prompts Matter

Writing better prompts isn’t just about getting better results. It has real downstream impacts on speed, cost, and accuracy.

  1. Reduce cost: String uses AI tokens behind the scenes. Poor prompts can waste tokens on unnecessary guesswork or require multiple rebuilds
  2. Get faster results: Clear instructions help String build the right automation the first time.
  3. Avoid invalid outputs: When users ask for things String isn’t designed to do, it still tries to help. This can lead to confusing results or workflows that can’t run in production.

Best Practices for Writing Prompts in String

1. Always Define the Trigger

Bad: “Build an agent to summarize new emails.”
Better: “When I get a new email in Gmail, summarize it with OpenAI and post to Slack.”

Why it matters: Triggers define how and when the workflow starts. Without one, String will guess or insert a placeholder. This leads to broken flows when you eventually connect to real data.

Tip: Triggers can be time-based (e.g. every day at 8 AM), event-based (e.g. new lead in Salesforce), or webhook-based (e.g. form submission - or even a custom web app).

2. Be Clear About Where the Trigger Comes From

Bad: “Start when someone enters info.”
Better: “Start when a user submits a form on Tally” or “Start when a Typeform response is received.”

Why it matters: String connects APIs. It does not create front-end interfaces or gather user input on its own. If your prompt doesn’t specify a data source, String will have nothing to work with and may default to fake or placeholder data.

Tip: If you want to capture user input, pair String with a form app such as Tally or Typeform that can send data to a webhook.

3. Name the Apps Explicitly

Bad: “Send to my CRM.”
Better: “Send to Salesforce” or “Send to HubSpot.”

Why it matters: Different apps have different APIs. Being specific helps String route data correctly and prevents errors during execution.

Tip: If you aren’t sure whether we support your tool, name it anyway. String handles over 2,000 apps and can often find a match.

4. Break It Down Into Smaller Pieces

Bad: “Build an agent that researches companies, enriches them, writes cold emails, and sends them.”
Better:

Step 1: “Build an agent that accepts a company website URL submitted through a google form. The agent will then research that company, identifying the Chief Product Officer, VP of Product, Head of Product, or other people in product leadership. ”

Step 2: “Using the output from the prior agent, draft emails in Gmail for each contact. Send me a Slack message when these are ready to review.”

Why it matters: Agents often work best when assigned specific tasks. When building a complex, multi-step agentic solution, you should break down your prompt to String by tackling each agentic step one at a time. This will help ensure the first agent works correctly before beginning work on the next agent.

Tip: Think like a developer. Break your problem into logical components, then chain them together using multiple agents or workflows.

5. Don’t Over-Prompt

Bad: A giant, 1,000-word prompt copied from ChatGPT that includes every possible instruction.
Better: A few precise sentences describing the trigger, source app, and desired action.

Why it matters: String is not a chatbot or essay writer. It uses LLMs to structure workflows, not to interpret long blocks of natural language. Over-prompting creates confusion and increases cost without improving results.

Tip: Start small. Build one part of your workflow at a time, and iterate from there.

Summary: The Anatomy of a Great Prompt

If you want String to deliver fast, accurate, and cost-effective results, follow these rules:

  1. Clearly define what triggers the workflow
  2. Specify where the triggering the data is coming from
  3. List the apps String should use to take action
  4. Break down complex tasks into smaller steps
  5. Don't over-prompt

Think of String like an engineer on your team. The more clearly you define the job, the better the outcome.