Part 1
From Runtime Evidence to Runtime Data Flow
As we learned in Lesson 11, Activity can show what a step received, targeted, returned, and knew during a run. Lesson 12 uses that evidence to follow values from one step into another.
Earlier Step
Produces or exposes runtime information
Later Step Reference
Points to selected earlier-step information
Runtime Resolution
The reference resolves to a concrete value for this run
Later-Step Input
The resolved value becomes usable by the later action
Remember This
Definition contains references. Runtime produces values.
That sentence is the mental anchor for the entire lesson.
Part 2
What We Already Know
This lesson is cumulative. We will use earlier concepts without reteaching them.
A Pipeline belongs to the realm.
Steps have Ref IDs such as aa and ab.
Triggers and actions execute at runtime.
Activity records what actually happened.
Target step, Input, Output, and Metadata can expose runtime evidence.
Part 3
Build a Fresh Pipeline for Lesson 12
We preserve the Lesson 10 and Lesson 11 Pipeline as historical evidence and create a new laboratory specimen.
Pipeline Name
Lesson 12 - Passing Data
aa — Quickbase: Record Updated
Trigger
ab — Quickbase: Update Record
Action
Before Every Test
Confirm that the Pipeline is ON.
We observed the Pipeline OFF when we expected it to be ON after making changes. We did not establish the cause, so we do not claim that editing always turns a Pipeline off.
Never assume the toggle is still ON just because it was ON during the previous experiment.
Part 4
One Field Can Trigger While Several Fields Travel Forward
Step aa gives us two settings that look related but answer different questions.
Fields
Which changes matter for initiation?
Selected: Status
Status is the business field being watched for a qualifying record update.
Fields for subsequent steps
Which business fields should later steps be able to use?
- Task Name
- Status
- Due Date
- Assigned To
- Later: Pipeline Results
Remember This
Do not say “only these fields are passed.”
These are the business fields we explicitly selected for subsequent use. Runtime evidence can expose additional built-in and system-generated information as well.
Part 5
Activity Lets Us See the Configuration
The successful run gave us a direct pairing between the Pipeline configuration and the runtime evidence.
trigger_fields: 8
export_fields: 6, 8, 7, 126 = Task Name
7 = Due Date
8 = Status
12 = Assigned Totrigger_fields: 8
FID 8 corresponds to Status, the field watched for the Record Updated Trigger.
export_fields: 6, 8, 7, 12
These correspond to Task Name, Status, Due Date, and Assigned To.
Remember This
Trigger field and downstream business-field availability are different jobs
They can overlap, but one setting controls what change matters for initiation while the other controls what business information is made available later.
Part 6
A Later Step Needs a Destination and a Source
Step ab targets the record represented by Record Updated. Inside that action, two separate decisions must be made.
Decision 1 — Destination
Where should ab place a value?
This is the job of Fields to update.
Possible destinations included Task Name, Due Date, Status, Assigned To, and Pipeline Results.
Decision 2 — Source
What earlier-step information should supply that value?
This is the job of the reference/value control.
Remember This
Destination field ≠ runtime reference
Mapping is not merely “copy this field back to the same field.” Source and destination are separate decisions.
Part 7
Fields for Subsequent Steps Affect the Downstream Field List
This was one of the strongest controlled UI discoveries in the lesson.
Before
Pipeline Results existed in the Tasks table but was not offered under ab → Fields to update.
Change aa
Add Pipeline Results under Fields for subsequent steps.
After
Pipeline Results became available in the downstream Quickbase Update Record configuration.
In this Quickbase → Quickbase configuration, the business fields selected in aa → Fields for subsequent steps affected which business fields Quickbase offered in the downstream Update Record configuration.
Troubleshooting habit
If a field exists in the table but does not appear where expected in a later Quickbase step, first inspect the earlier step's Fields for subsequent steps.
Part 8
References Are the Bridge Between Steps
Once earlier-step information is available, a later step needs a way to point to it.
| Destination | Reference | Jinja / Code View |
|---|---|---|
| Task Name | aa.task_name | {{aa.task_name}} |
| Due Date | aa.due_date | {{aa.due_date}} |
| Status | aa.status | {{aa.status}} |
| Assigned To | aa.assigned_to.id | {{aa.assigned_to.id}} |
- Step Ref ID
- aa
- Identifies the earlier step whose runtime information we want to reference.
- Field / value
- status
- Identifies the runtime value exposed by that step.
- Nested property
- assigned_to.id
- Selects a property inside a structured value.
- Full reference
- {{aa.assigned_to.id}}
- From step aa, use Assigned To, then select its id property.
Part 9
The Same Value Can Appear in Different Reference Syntax
This experiment became confusing for an important reason: Quickbase does not show references in exactly the same form everywhere.
We were looking at reference notation from one Quickbase context and tried to use it in another. The result taught us that understanding the value being referenced is only half the job. We also have to use the syntax expected by the place where we are typing it.
First Separate Three Different Things
1 — Quickbase Field Label
Task Name
This is the human-readable field name we see in the Quickbase table, form, and field configuration.
2 — Reference Name
task_name
Pipeline references may use a machine-friendly runtime name rather than the field's displayed label.
3 — Reference Syntax
The wrapper depends on where the reference is being used.
Similar runtime information can appear with brackets, one set of braces, or Jinja's two sets of braces depending on the Quickbase surface.
Context Matters
Similar Reference — Different Representation
| Where We Encounter It | Example Form | What to Notice |
|---|---|---|
| Quickbase field label | Task Name | Human-readable field name. This is not itself Pipeline syntax. |
| Activity / runtime reference display | [aa.taskname] | A reference representation encountered while inspecting runtime information. Seeing this form does not mean the same notation can simply be typed into every Pipeline control. |
| Other Quickbase reference contexts | {aa.task_name} | Some Quickbase surfaces can represent a reference with a single set of braces. |
| Jinja expression | {{aa.task_name}} | In Jinja, the runtime expression uses two sets of curly braces. |
Remember This
Do not memorize a reference without remembering where you saw it
A reference that is valid or displayed in one Quickbase surface is not automatically valid syntax in another.
Before typing a reference manually, ask two questions:
- What value am I trying to reference?
- What syntax does this particular control expect?
What Went Wrong
Task: [aa.Task Name]
Status: [aa.Status]
Assigned To: [aa.Assigned To.ID]We mixed a human-readable field label and a reference style from a different context, then placed that text into a control that did not interpret it as the runtime expression we intended.
Quickbase therefore preserved the text literally.
What Worked in Jinja
{{aa.task_name}}
{{aa.status}}
{{aa.assigned_to.id}}In the Jinja context we were using, these expressions referenced runtime information from step aa and resolved to concrete values during the run.
Read the Reference from the Inside Out
{{aa.assigned_to.id}}aa
The Ref ID of the earlier Pipeline step.
assigned_to
The runtime reference name for the Assigned To value.
id
A nested property inside that structured User value.
The Naming Trap
Task Name, task_name, and a wrapped reference can all point toward the same underlying business value.
The visible Quickbase field is named Task Name. A Pipeline runtime/reference representation may use a normalized name such as task_name. Then the control or language adds its own reference syntax around that name.
That means a builder can understand exactly which field is intended and still type the wrong reference because the name and the syntax belong to different layers.
Remember This
Use the picker when it is available
The visual reference picker reduces the amount of syntax we have to remember manually. The code/Jinja view is valuable because it shows how Quickbase represents the selected reference, but manually typing from memory creates another opportunity to mix field labels, reference names, and syntax from different contexts.
Part 10
First Full Runtime Data-Flow Experiment
Record #18 gave us a clean specimen containing populated values for Task Name, Status, Due Date, and Assigned To.
Baseline
Record #18 contained populated values for all four business fields.
One Variable
Change only Status.
Observed Transition
Previous: On Hold
Runtime/current: Open
task_name: Review Applications - Changed 7
due_date: 2026-11-02T00:00:00+00:00
status: Open
assigned_to:
id: 61267378.b6qh
first_name: Dariansweb G
last_name: Gmail
email: dariansweb@gmail.com
screen_name: fizzixtask_name: Review Applications - Changed 7
due_date: 2026-11-02T00:00:00+00:00
status: Open
assigned_to: 61267378.b6qhThe Pipeline definition stores references to earlier-step information. During a particular run, those references resolve to concrete runtime values that become inputs to the later step.
Part 11
Definition-Time Reference vs Runtime Value
This distinction will matter again when we reach conditions, searches, loops, and deeper Jinja work.
Pipeline Definition
Stored expression
{{aa.status}}This is a reference. It is not permanently equal to Open.
Pipeline Runtime
Concrete value for this run
OpenAnother run could resolve the same definition to On Hold or another legitimate Status value.
Remember This
The reference is stable in the definition. The value belongs to the execution.
Never confuse a stored expression with the particular value it happened to resolve to during one run.
Part 12
Structured Values: Assigned To Carries More Than One Property
Not every Quickbase field behaves like a single plain value. Some field types expose a richer structure containing several related properties.
Our Assigned To field is a Quickbase User field, so the Pipeline did not expose only the text that happened to appear in the table. It exposed information describing the user itself.
Simple Value
One field → one primary runtime value
A field such as Status may behave conceptually like a simple value:
status: OpenThe later step usually needs the value itself.
Structured Value
One field → several related runtime properties
A User field can expose multiple pieces of information describing the same Quickbase user.
assigned_to:
id
first_name
last_name
email
screen_nameContact Card Mental Model
Assigned To is the card. The properties are pieces of information on the card.
Assigned To
- ID
61267378.b6qh
Quickbase identity for this user.
- First Name
Dariansweb G
A descriptive property of the user.
- Last Name
Gmail
A descriptive property of the user.
dariansweb@gmail.com
Another property that may also identify the user in controls that accept email.
- Screen Name
fizzix
Another user property exposed by the structured value.
Choosing the Property for the Downstream Job
We selected the User ID because the next step needed user identity.
{{aa.assigned_to.id}}In our experiment, the downstream Quickbase User control accepted a User ID or User Email. We chose the ID:
61267378.b6qh
That lets the downstream Quickbase field identify the same user without depending on how that user happens to be displayed.
Pipeline Responsibility
Carry the identity or property needed by the next operation.
If the next Quickbase action needs to identify the Assigned To user, a value such as the User ID is appropriate.
assigned_to: 61267378.b6qhTable / Field Responsibility
Decide how that user should be displayed.
The Quickbase table may display the User field as something like:
Gmail, Dariansweb G
That presentation belongs to the Quickbase field's display configuration. The Pipeline does not need to recreate that formatting simply to identify the user.
Remember This
Identity and display are different responsibilities
The Pipeline may pass a User ID while the table later displays Last Name, First Name.
That does not mean the Pipeline passed the wrong value. The Pipeline supplied identity. Quickbase used that identity to resolve the User field and then displayed the user according to the table's own field settings.
Choosing Among User Properties
The right property depends on what the next step needs.
| Property | What It Represents | Possible Downstream Use |
|---|---|---|
| ID | Quickbase identity for the user | Strong choice when another Quickbase User field or control needs to identify that user. |
| User's email address | Useful when a control explicitly accepts email or when the workflow needs an email address. | |
| First Name | Descriptive user information | Useful for composing human-readable text. |
| Last Name | Descriptive user information | Useful for composing human-readable text. |
| Screen Name | Another user property | Use only when a downstream requirement specifically needs it. |
Builder Habit
When a field exposes several properties, choose the property that matches the next operation's need.
Do not automatically choose the property that looks nicest to a person. Ask what the next step actually requires:
Identity? Email address? Display text? Another property?
Remember This
For Quickbase User-to-User data flow, ID is often the safest first choice
In the Quickbase → Quickbase experiment we performed, the User ID gave the downstream field the identity it needed, and Quickbase handled the field's display presentation afterward.
Keep that statement bounded to controls that accept User ID. Other channels or actions may ask for a different property.
Part 13
Field Properties Are Not Pipeline Metadata
This distinction is easy to blur because both appear as nested runtime structures.
Remember This
Field properties describe the value being carried. Metadata describes context surrounding the step, execution, or event.
Assigned To → Email is a field property. It is not Pipeline Metadata.
Explained in Part 14 belowPart 14
Data, Field Properties, Metadata, References, and Mapping
Lesson 12 introduces several closely related ideas. Keeping them separate prevents a large amount of future confusion.
Of these terms, metadata may sound the most technical. Fortunately, the idea is much simpler than the word makes it sound.
A Plain-Language Model
Think About a Package Moving Through a Shipping System
The contents of the package are important, but the shipping system also needs information about the package and its journey. That surrounding information is a useful way to think about metadata.
The Contents
Data
The actual information being carried.
In our Pipeline, that could be:
- Task Name
- Status
- Due Date
- Assigned To
Details About One Item
Field Properties
One item inside the package may have several details of its own.
Assigned To, for example, can expose:
- ID
- First Name
- Last Name
- Screen Name
The Shipping Label
Metadata
Information describing the surrounding context rather than the business value itself.
It can help describe things such as where information came from, what happened, who was involved, or where an item sits inside a larger batch.
Remember This
Metadata is data about the data or its journey
If Status = Open is the business value, metadata is not another Status.
Metadata helps describe the surrounding event, execution, source, record, user, position, or processing context.
- Data
- Actual runtime values exposed by a step, such as Task Name, Status, Due Date, and Assigned To.
- Field Properties
- Parts of a structured value, such as Assigned To → ID or Assigned To → Email.
- Metadata
- Additional information describing the runtime context, event, record, source, user, batch, or processing state surrounding the data.
- Reference
- {{aa.status}}
- An expression pointing to earlier-step runtime information.
- Mapping
- The configuration that decides where the resolved value is used.
- Destination
- The field or control in the later step that receives the resolved value.
How Quickbase Uses the Idea
A Step Can Return More Than Just the Business Values We Selected
Quickbase documentation explains that later Pipeline steps can use information from earlier steps, including metadata. That information can be selected through reference controls or accessed through Jinja.
Connected systems can also return additional information alongside their primary data. In other words, the result of a step may contain both the thing we wanted and information describing that thing or how it was produced.
Business Data
task_name: Review Applications - Changed 7
status: Open
due_date: 2026-11-02
assigned_to:
id: 61267378.b6qhThese values describe the Task and the User associated with the Task.
Metadata / Runtime Context
Metadata
context
app_name
app_id
table_name
table_id
realm_host
realm_id
occurred_at
user
record
action
previous
...This information helps describe the execution and event surrounding the record data.
Remember This
The value and the context are both useful, but they answer different questions
Data asks: What value are we working with?
Metadata asks: What do we know about where this came from, what happened around it, or how it is being processed?
Metadata Becomes Even More Useful with Multiple Records
Sometimes metadata describes where one item sits inside a larger group.
Quickbase documentation describes steps that can return arrays or batches of information. When a Pipeline later processes those items, metadata can help identify information such as the current item's position and the size of the collection.
Current Item
3
Total Items
10
Meaning
Item 3 of 10
We are not learning loops or batch processing here. The important idea for Lesson 12 is simply that metadata can describe the processing context around a value, not merely the value itself.
Then the Reference Tells the Next Step What to Use
aa.status
Source reference
ab → Pipeline Results
Destination
The reference identifies the earlier information we want. The mapping determines where the resolved value will be used.
The Lesson 12 Dictionary
Six Ideas — Six Different Jobs
DATA
What is the actual value?
FIELD PROPERTY
Which part of a structured value do I need?
METADATA
What describes the surrounding context?
REFERENCE
Which earlier information am I pointing to?
MAPPING
How am I connecting that information to the next step?
DESTINATION
Where should the resolved value go?
Remember This
Metadata is supporting information, not mysterious Pipeline magic
The word sounds technical, but the idea is ordinary: when Quickbase moves information through a workflow, it may also carry useful information about the record, event, source, user, execution, or collection.
Just like a shipping label helps us understand a package's journey, metadata helps us understand and sometimes control what is happening around our Pipeline data.
Part 15
System-Generated and Automatically Available Information
This is a quick-reference index, not a separate experiment.
| Type | Examples |
|---|---|
| Explicit business fields | Task Name, Status, Due Date, Assigned To, Pipeline Results |
| Built-in/system record information | Record ID, Date Created, Date Modified |
| User-valued system fields | Record Owner, Last Modified By |
| Structured User properties | ID, First Name, Last Name, Email, Screen Name |
| Separate Pipeline Metadata | Context, Record action, Previous record |
Remember This
Explicitly selected business fields are not the entire runtime picture
Activity also exposed values such as id, created_at, updated_at, record_owner, and last_modified_by. Structured User values can then expose their own properties.
Part 16
Build a New Value from Several Earlier-Step Values
Data passing becomes much more interesting once we stop doing one-to-one copying.
Task Name
{{aa.task_name}}
Status
{{aa.status}}
Assigned To.ID
{{aa.assigned_to.id}}
Task: {{aa.task_name}} | Status: {{aa.status}} | Assigned To: {{aa.assigned_to.id}}Observed Quickbase Result
Task: Prepare November Reports - Changed 7 | Status: On Hold | Assigned To: 61267378.b6qh
Remember This
A later step does not have to put an earlier value back into a field with the same name
Several earlier-step values can be combined with literal text and used for an entirely different downstream purpose.
Part 17
What Actually “Passes” Between Steps?
This is where precise language matters because casual wording can imply an undocumented internal transport model.
aa exposes runtime information that later steps can reference.
ab contains references to selected earlier-step information.
At runtime, those references resolve to concrete values.
Activity shows those concrete values inside ab → Input.
Remember This
Avoid saying “aa sends four fields to ab.”
Our evidence supports a safer model: earlier-step runtime information is exposed, later steps reference selected values, and those references resolve during execution.
Part 18
Target Step vs Input vs Output — Revisited
As we learned in Lesson 11, these are activity-specific areas. Lesson 12 uses them to prove the data-flow chain.
- Target step
- Shows the record/resource the action is acting upon and the visible target state exposed in that runtime evidence.
- Input
- Shows the concrete values supplied to the Update Record action after references resolve.
- Output
- Shows what the action returned after it executed.
- Best comparison
- aa → Output ↔ ab → Input
- One of the strongest ways to verify that expected runtime information from the earlier step became concrete input to the later step.
Part 19
A Controlled Failure Is Still Evidence
The failed bracket-syntax experiment proved how literal text and runtime expressions differ.
Wrong
[aa.Task Name]Quickbase stored the notation literally.
Correct
{{aa.task_name}}Quickbase resolved the reference to the actual runtime Task Name.
Remember This
Runtime expressions are interpreted according to Pipeline syntax
Ordinary text remains ordinary text.
Part 20
The Final Lesson 12 Runtime Model
Pull the definition-time and runtime views together.
Definition Time
Step aa
Watches Status, exposes selected business fields, and makes additional system/runtime information available.
Step ab
Chooses destination fields and stores references to earlier-step information.
Runtime
Record update occurs
aa executes
Runtime values exist for this run
ab references are resolved
Resolved values become ab Input
ab performs the action
Output records the result
Quickbase reflects the resulting mutation
Definition contains references. Runtime produces values.
Part 21
Evidence Boundary
Separate what the UI/help tells us, what we directly observed, the teaching model we infer, and what we refuse to invent.
- Fields can be selected specifically to trigger the step.
- Fields can be selected for subsequent steps.
- Built-in fields such as Record ID and Date Created are automatically included according to the UI/help encountered in this lesson.
- Reference mechanisms/Jinja can access runtime information.
- User/action controls can require appropriate identity values such as ID or email.
- Status alone could be watched while several business fields were available downstream.
- Activity exposed trigger_fields and export_fields.
- Downstream Update Record field availability changed after we changed Fields for subsequent steps.
- aa Output values became concrete ab Input values.
- Assigned To was structured and exposed nested properties.
- aa.assigned_to.id resolved to a User ID.
- Multiple earlier-step references could be combined into Pipeline Results.
- Bracket-style notation remained literal while correct runtime references resolved.
- The Pipeline was unexpectedly OFF during testing and had to be turned ON.
Our teaching model is that a Pipeline definition stores references that are resolved against earlier-step runtime information during an execution.
That model does not claim undocumented internal transport or memory mechanics.
We do not speculate about how Quickbase physically stores step output, whether values are copied between internal services, internal memory structures, or why the Pipeline toggle became OFF.
Part 22
Bridge to Lesson 13 — Conditions
Now that a later step can reach runtime information, the next question becomes unavoidable.
What if we want the Pipeline to make a decision based on one of those runtime values?
Is Status equal to Open?
Does Assigned To have a value?
Is a date before or after another date?
Does a User value match a particular user?
Different kinds of runtime values can expose different condition or filter choices. That belongs to the next lesson, not this one.
Remember This
Lesson 12 learned how to reach the data. Lesson 13 will learn how to test that data and decide what happens next.
Conditions and filters now have a reason to exist in the curriculum.
Part 23
Key Takeaways
Leave Lesson 12 with these distinctions firmly separated.
Earlier Pipeline steps can expose information for later steps.
A trigger field and a field available for subsequent use are not necessarily the same concept.
Later steps use references to earlier-step runtime information.
The Pipeline definition stores the reference; the run supplies the concrete value.
Structured values such as User fields can expose nested properties.
Structured field properties are not Pipeline Metadata.
Destination selection and source/reference selection are different decisions.
Multiple references can be combined with literal text into a new downstream value.
Activity can prove the chain by comparing earlier-step Output with later-step Input.
Before testing, make sure the Pipeline is ON.
Lesson 12 Quiz
Can You Follow the Data?
Test the distinctions that matter: trigger fields, downstream availability, structured values, references, destinations, metadata, and runtime resolution.
Progress
0/10
If Status is the only field selected under Fields, then Status is the only information a later step can use.
{{aa.status}} permanently contains the value Open.
{{aa.assigned_to.id}} accesses a property of the structured Assigned To value.
Assigned To → Email is Pipeline Metadata.
Typing [aa.Task Name] into a Pipeline field creates a runtime reference.
A later step can combine several earlier-step references with ordinary text and write the result into another field.
If Task Name from aa is referenced in ab, it must be written back to the Task Name field.
Comparing aa → Output with ab → Input can provide evidence that a reference resolved to the expected runtime value.
Seeing created_at, record_owner, or last_modified_by means those fields were necessarily selected manually under Fields for subsequent steps.
Before testing a Pipeline, it is worth confirming that the Pipeline is ON even if it was ON during an earlier test.
Ready to test the data-flow model?
Answer all ten questions, then grade the quiz.
Lesson 12 Complete
The Steps Are No Longer Isolated.
Earlier steps expose runtime information, later steps reference it, and the same Pipeline definition can resolve to different concrete values on every execution.
Next: Lesson 13 — Conditions / Filters
We now know how data becomes available downstream. Next we learn how a Pipeline evaluates that data and decides whether execution should continue down a particular path.