Skip to content

4.2: Required vs. Optional Steps ​

In the last section, you learned how actions happen in sequence. But what happens when some data might not always be available? Should your automation stop and wait, or should it continue anyway?

This is where Required vs. Optional comes inβ€”one of the most powerful concepts for building flexible, real-world automations.

The big idea: Some information is critical (can't proceed without it), while other information is nice-to-have (makes things better, but not essential). Understanding the difference will help you build automations that handle the messy reality of real data.

πŸ’‘ What You'll Learn

By the end of this section, you'll understand:

  • βœ… When to make a step required (must have it!)
  • βœ… When to make a step optional (nice to have)
  • βœ… How to build flexible workflows that gracefully handle missing data
  • βœ… Real-world examples of mixing required and optional steps

4.2.1: Understanding Required Steps ​

A required step means: "I absolutely MUST have this information before I can do my job."

Think about everyday examples:

  • You can't bake a cake without flour (required ingredient!)
  • You can't send an email without an email address
  • You can't answer a question if you don't know what the question is

In your automations, required steps work the same way.

Required Dependency: Must Have Data to Continue

AI Response REQUIRES Customer Question

Customer Question
Completed
"What are your hours?"
AI Response
Running
Generating answer...

βœ… This works!

Because Customer Question is completed, AI Response can run. Without the question, the AI would have nothing to respond to.

What if Customer Question is empty?

Customer Question
Ready
(empty)
AI Response
Ready
Waiting for question...

AI Response stays Ready

It can't run without the question. This is correct behaviorβ€”the system is waiting for critical information.

What Happens Without Required Data? ​

If a required step doesn't have its data:

  • ❌ The column stays in "Ready" state
  • ⏸️ It waits indefinitely for the data to arrive
  • 🚫 All columns that depend on it also stay waiting
  • βœ… This is correct behaviorβ€”better to wait than to produce wrong results!

πŸ’‘ Required = Will Wait Forever

When you mark something as required, the column will wait as long as it takes for that data to arrive.

Make sure required dependencies will actually complete! Don't require something that might never happen.


4.2.2: Understanding Optional Steps ​

An optional step means: "I'd love to have this information, but I can work without it if needed."

Think about everyday examples:

  • You can bake a cake without chocolate chips (they make it better, but it's still a cake)
  • You can give directions without traffic data (less optimal, but still helpful)
  • You can answer a question without research (might be generic, but better than no answer)

In your automations, optional steps provide flexibility.

Optional Dependency: Try, But Continue Anyway

AI Response optionally uses Knowledge Base

Scenario 1: Knowledge Base Found Results

Customer Question
Completed
"Return policy?"
Search Knowledge (optional)
Completed
Found policy docs
AI Response
Completed
Used policy from KB

βœ… Best case: Knowledge Base found results, so AI used them for an accurate answer.

Scenario 2: Knowledge Base Found Nothing

Customer Question
Completed
"Your CEO's cat?"
Search Knowledge (optional)
No Results
Nothing found
AI Response
Completed
General answer

πŸ’‘ Still works!

Because Knowledge Base is optional, AI Response continues anyway. It gives a general answer instead of a specific one. Not perfect, but better than no response!

What Happens Without Optional Data? ​

If an optional step doesn't have its data:

  • βœ… The column continues anyway
  • ▢️ It doesn't waitβ€”it runs with whatever is available
  • πŸ’‘ Results might be less detailed, but still useful
  • 🎯 Better to have a general answer than no answer at all

πŸ’‘ Optional = Graceful Degradation

Optional dependencies let your automation degrade gracefully.

Instead of failing completely when data is missing, it continues with a simpler version. This makes your automations much more resilient to real-world messiness!


4.2.3: When to Use Required vs. Optional ​

The key question to ask yourself: "Can this column do its job without that data?"

Required vs. Optional: When to Use Each

πŸ›‘ REQUIRED

"I MUST have this to continue"

When to use:
  • β€’ Critical information
  • β€’ Can't proceed without it
  • β€’ Would error or break
  • β€’ Core data for operation
Examples:
  • βœ… Customer question (to respond)
  • βœ… Email address (to send email)
  • βœ… Order details (to process)
  • βœ… Product ID (to look up price)
  • βœ… Customer name (for greeting)
Behavior:
  • ❌ Missing β†’ Column stays Ready
  • ⏸️ Waits indefinitely
  • βœ… Present β†’ Column runs

πŸ’‘ OPTIONAL

"Nice to have, but I'll continue anyway"

When to use:
  • β€’ Enrichment data
  • β€’ Can work without it
  • β€’ Has fallback behavior
  • β€’ Enhancement, not core
Examples:
  • βœ… Company data (for context)
  • βœ… Knowledge base search
  • βœ… Sentiment analysis
  • βœ… Lead score enrichment
  • βœ… Past conversation history
Behavior:
  • ❓ Missing β†’ Column runs anyway
  • ▢️ Doesn't wait
  • βœ… Uses what's available

πŸ€” Ask Yourself:

❓

"Can this column do its job without that data?"

NO β†’ Make it Required | YES β†’ Make it Optional

❓

"Will it break or give wrong results without that data?"

YES β†’ Make it Required | NO β†’ Make it Optional

πŸ’‘

"Is this data making things better, but not essential?"

YES β†’ Make it Optional (nice-to-have enhancement)

Common Required Dependencies ​

Use required when the data is:

  • Critical for operation: Email address for sending email
  • Would cause errors: Product ID for price lookup
  • Core to the task: Customer question for generating response
  • Can't have a fallback: Order details for fulfillment

Examples:

βœ… AI Response requires Customer Question
   (Can't respond without knowing what to respond to!)

βœ… Send Email requires Email Address
   (Can't send to nowhere!)

βœ… Calculate Total requires Item Prices
   (Math doesn't work without numbers!)

βœ… Look Up Customer requires Customer ID
   (Nothing to look up without an ID!)

Common Optional Dependencies ​

Use optional when the data:

  • Enhances the result: Company info makes response more personalized
  • Has a fallback: Use default value if missing
  • Is contextual: Past conversation history adds context but isn't critical
  • Might not always exist: Knowledge base might have no results

Examples:

βœ… AI Response optionally uses Knowledge Base
   (Makes answer better, but can give general answer without it)

βœ… Greeting optionally uses Customer Name
   (Can say "Hello!" instead of "Hello, John!")

βœ… Lead Scoring optionally uses Company Data
   (Can score based on other factors if company unknown)

βœ… Response optionally uses Sentiment Analysis
   (Helps tone adjustment, but not critical)

4.2.4: Real-World Example: Building a Flexible Workflow ​

Let's see how required and optional work together in a real customer support workflow:

Real Workflow: Mixing Required and Optional

Customer support automation with enrichment

1
Customer QuestionREQUIRED

"What's your return policy?"

Completed
2a
Search Knowledge BaseOPTIONAL

Found policy docs

Completed
2b
Search ContactsOPTIONAL

Found customer history

Completed
3
Generate AI ResponseREQUIRED

Requires: Question (step 1) βœ…
Uses if available: Knowledge (2a), Customer history (2b)

Completed

🎯 How This Works:

1.
Customer Question (REQUIRED)

Must have the question before anything else can happen. Without it, the entire workflow stays in "Ready" state.

2a/2b.
Search Knowledge & Contacts (OPTIONAL)

These run in parallel to gather helpful context. If they find nothing, or if they error, the workflow continues anyway. They make the response better, but aren't essential.

3.
Generate AI Response (REQUIRED)

Required: Must have Customer Question (step 1)
Optional: Will use Knowledge Base and Contact data if available
Result: Always generates a response, enriched with whatever context was found

πŸ’‘ What if Knowledge Base has no results?

The workflow still completes! Step 2a shows "No Results" but step 3 runs anyway. The AI generates a response based on the question and customer history (if available), just without the knowledge base context. A general answer is better than no answer!

Why This Design Works ​

Step 1 (Customer Question) is REQUIRED because:

  • Without the question, nothing makes sense
  • The entire automation exists to answer questions
  • Can't proceed without this core input
  • Better to wait than to guess what the customer wants

Steps 2a/2b (Searches) are OPTIONAL because:

  • They enhance the response but aren't essential
  • Knowledge base might not have relevant docs
  • Customer might be new (no history yet)
  • A general response is better than no response
  • These run in parallel to save time

Step 3 (AI Response) is REQUIRED on Question, OPTIONAL on Searches:

  • Must have the question (required)
  • Will use knowledge if found (optional)
  • Will use customer history if available (optional)
  • Always generates a responseβ€”enriched or general

πŸ’‘ πŸ’‘ Think of It Like This

Required dependencies are like non-negotiable ingredients in a recipe:

  • Can't make bread without flour
  • Can't proceed without them
  • Recipe fails if they're missing

Optional dependencies are like optional ingredients:

  • Chocolate chips make cookies better
  • But you can still make cookies without them
  • Recipe adapts based on what's available

Your automation does the same thingβ€”it adapts!


4.2.5: Hands-On: Try It Yourself! ​

Let's practice with your chatbot from earlier tutorials.

πŸ’‘ 🎯 Your Mission

Make your chatbot more flexible by adding optional enrichment!

Scenario: Your chatbot should try to look up the customer in your contacts database, but respond even if the customer isn't found.

Step 1: Open Your Chatbot Table ​

Open the chatbot table you created in Part 2 (or create a new one if needed).

Step 2: Add a "Search Contacts" Column ​

  1. Click "+ Add Column"
  2. Search for a column type that can search your contacts
  3. Name it "customer_info"
  4. Configure it to search based on the customer's email or name

Step 3: Check Dependencies ​

Look at your "AI Response" column configuration:

  1. Click the gear icon (βš™οΈ) on the AI Response column header
  2. Scroll to the "Dependencies" section
  3. You should see:
    • Customer Question (required) ← Must have this
    • Customer Info (optional) ← Nice to have, but not required

Step 4: Test Both Scenarios ​

Test 1: Customer Found

  1. Add a new row
  2. Enter a customer question from a known customer
  3. Watch the workflow:
    • Customer Question: βœ… Completed
    • Customer Info: βœ… Completed (found customer)
    • AI Response: βœ… Completed (used customer info for personalized response)

Test 2: Customer Not Found

  1. Add another row
  2. Enter a question from an unknown customer
  3. Watch the workflow:
    • Customer Question: βœ… Completed
    • Customer Info: ⚠️ No Results (customer not found)
    • AI Response: βœ… Completed anyway (gave general response)

What you should notice:

  • Both scenarios complete successfully!
  • The automation doesn't stop when customer isn't found
  • Responses are personalized when possible, general when not
  • This is much better than failing completely!

πŸ’‘ πŸŽ‰ You Did It!

You just built a resilient automation that handles real-world messiness!

In the real world, data is often incomplete or missing. By using optional dependencies, your automation gracefully handles these situations instead of breaking.


4.2.6: Common Mistakes to Avoid ​

Mistake 1: Making Everything Required ​

Problem: Your automation breaks when ANY data is missing.

❌ BAD:
- Customer Question (required)
- Knowledge Base (required)  ← TOO STRICT!
- Customer Info (required)   ← TOO STRICT!
- Past History (required)    ← TOO STRICT!
- AI Response (depends on all)

Result: If knowledge base has no results, entire workflow stops!

Solution: Only require what's truly critical.

βœ… GOOD:
- Customer Question (required)   ← Actually critical
- Knowledge Base (optional)      ← Nice to have
- Customer Info (optional)       ← Nice to have
- Past History (optional)        ← Nice to have
- AI Response (depends on question only)

Result: Workflow adapts to what's available!

Mistake 2: Making Everything Optional ​

Problem: Columns run without critical data and produce errors or nonsense.

❌ BAD:
- Customer Question (optional)  ← TOO FLEXIBLE!
- AI Response (optional)        ← Runs without question!

Result: AI tries to respond with no question β†’ produces gibberish!

Solution: Require the essentials.

βœ… GOOD:
- Customer Question (required)  ← Must have this
- AI Response (depends on question)

Result: AI always has a question to respond to!

Mistake 3: Confusing "No Results" with "Error" ​

Important: Just because an optional column found nothing doesn't mean it failed!

"No Results" is often correct:

  • Knowledge base has no docs on that topic β†’ Fine! Answer generally
  • Customer not in contacts β†’ Fine! Treat as new customer
  • No past conversation history β†’ Fine! Start fresh

πŸ’‘ Remember

"No Results" β‰  Error

An optional column that finds nothing has still done its jobβ€”it checked! The workflow continues as designed.


What You've Learned ​

πŸŽ‰ Congratulations! You now understand how to build flexible, resilient automations.

Key takeaways:

  • Required steps = "Must have this or I can't continue"
  • Optional steps = "Nice to have, but I'll work without it"
  • Ask yourself: "Can this column do its job without that data?"
  • Graceful degradation: Better to continue with less data than to fail completely
  • Real-world data is messy: Optional dependencies let your automation handle reality

The power of this approach:

  • Your automations don't break when data is incomplete
  • Responses are enriched when possible, general when not
  • You handle edge cases gracefully instead of crashing
  • Your workflows are production-ready for real-world use!

What's next? In the next section, we'll learn about Conditional Actions ("Only if...")β€”how to make your automation take different paths based on the data.


Previous: 4.1 Understanding Action SequencesNext: 4.3 Conditional Actions

Built with VitePress