Skip to main content
Question

Parse Through Rich Text Field

  • Jan 24, 2025 4:24 PM UTC
  • 2 replies
  • 258 views

Forum|alt.badge.img+2

Hello, I have a pipeline question and am hoping someone much smarter than I can help. I have read other discussions on this matter such as:

@markShnier_You and @KristofferKeen1 Collaboration: 
'Looping through field values in Pipeline | Qrew Discussions'

as well as @ChayceDuncan response:
'How to iterate through the fields of a single record in a Quickbase pipeline? | Qrew Discussions'

I am thinking this may be a combination of both?
I have a field called [FAILURE DETAILS] and it's formatted like this:
ps. I can change this to look however I need it to for this solution to work as it is just a rich text formula field consisting of if statements with html outputs to add underlining and line breaks. 

My question is, how would I have pipelines parse through a rich text field such as this and create a record per line, separating the title from the description. 
Example:

Table Name: Failures

[record id#]: 1
[Field Label]: TYPE OF PROVIDER
[Failure Description]:  MISSING

[record id#]: 2
[Field Label]: TYPE OF OWNERSHIP
[Failure Description]:  MISSING

Thank you in advance for any and all recommendations. I look forward to seeing what the community can come up with

2 replies

MarkShnierYou
Forum|alt.badge.img+24

Can you post the links to those previous discussions?


Top Step
Forum|alt.badge.img+9
  • Registered
  • Oct 31, 2026 1:14 AM UTC

Since you can change the format, I’d skip parsing the rich text and add a plain Formula - Text field just for the pipeline. Keep the rich text one for display.

Make each failure “Label|Description” and join them with a delimiter. List() skips the blanks for you:

List(";;", If(IsNull([Type of Provider]), "TYPE OF PROVIDER|MISSING"), If(IsNull([Type of Ownership]), "TYPE OF OWNERSHIP|MISSING"))

Then in the pipeline, use a Quickbase Make Request step to POST to https://api.quickbase.com/v1/records and loop over the pieces in the body. Here 6 is Field Label, 7 is Failure Description and 8 is the reference back to the parent, so swap in your own IDs:

{"to": "FAILURES_TABLE_ID", "data": [{% for line in a.failure_lines.split(';;') %}{"6": {"value": {{ line.split('|')[0] | tojson }}}, "7": {"value": {{ line.split('|')[1] | tojson }}}, "8": {"value": {{a.id}}}}{{ ',' if not loop.last }}{% endfor %}]}

That creates every failure record in one call, already linked to the parent. Tojson takes care of any quotes in the descriptions.

https://developer.quickbase.com/operation/upsert