The quick answer
If Report Builder doesn't offer Created From on a standard report such as Inventory Activity Detail, copy it into a field the report can read. Create a transaction body field, Free-Form Text with Store Value checked, applied to Item Fulfillment and Item Receipt. Create a workflow on those sub types that initiates On Create and On View Or Update, with a Set Field Value action on After Record Submit that sets the field From Field: Current Record, Created From. Add the custom field to the report as a column. The workflow only fills transactions when they're saved, so save the existing ones again with a CSV import: Data Handling Update, only Internal ID mapped, and Run Server SuiteScript and trigger WorkFlows checked.
The screenshots show sample data. The company, people, items and transactions are fictional. Use your own records and values when following the steps.
Before you start
You need the Administrator role, or a role that can create custom transaction body fields and workflows, customize reports and run CSV imports. SuiteFlow has to be enabled.
Check your own account first. Which fields Report Builder offers depends on the report, your features and the report version, so Created From may already be there for you. It also isn't guaranteed that every report lists custom body fields. In this example the custom field showed up under Quantity On Hand on Inventory Activity Detail; confirm the same in your account before you backfill hundreds of records.
In this example, Copperline Marine Supply reviews September inventory movement in Inventory Activity Detail. Dalia Fenwick, the administrator, wants each item fulfillment to show the sales order it shipped, without exporting the report and looking orders up by hand.
01. See that the report can't show Created From
Go to Reports > Inventory/Items > Inventory Activity Detail and run it for 09/01/2026 to 09/30/2026. Under Inventory Item, Bilge Pump 12V shows IR301, IF551 and IF553, Marine Rope 50 ft shows IR302 and IF555, and Stainless Cleat 6 in shows IF552 and IF554. The columns are Transaction Type, Date, Document Number, Description and Qty. Nothing shows the sales order or purchase order behind each line.
Click Customize. In Report Builder, expand Quantity On Hand under Add Fields and scroll to the C fields. Country of Origin Code is followed by Credit Memo Source and Custom GL. Created From isn't offered.
02. Create the Source Order for Reports field
Go to Customization > Lists, Records, & Fields > Transaction Body Fields > New. Enter Source Order for Reports as the Label and _source_order_report as the ID. Leave Type at Free-Form Text and Store Value checked. Store Value saves the value on each transaction, so the report reads what the workflow wrote.
On the Applies To subtab, check Item Receipt and Item Fulfillment, the two transaction types the report lists.
Free-Form Text holds the display text of Created From. In this example that's Sales Order #SO2214; check what your account stores on one record. It reads well in a report, but it isn't a key you can join or reconcile on. If you need that, plan a separate field for it. Created From isn't always a sales order either: a fulfillment can come from a transfer order, and a receipt usually comes from a purchase order.
Click Save. The Transaction Body Fields list shows Source Order for Reports with the ID custbody_source_order_report.
03. Create the workflow
Go to Customization > Workflow > Workflows > New. Enter Fill Source Order for Reports as the Name. Type Transaction in Record Type and press Tab, then select Item Fulfillment and Item Receipt in Sub Types. Set Release Status to Released so it runs for every user. In Testing it only runs when you, the owner, trigger it. Execute as Admin stays unchecked here. If people who save fulfillments use roles that can't edit the new field, check it.
Under Event Definition, check On Create and On View Or Update. On Create fills the field on new fulfillments and receipts. On View Or Update lets the update import in step 07 start the workflow on records that already exist.
If you limit the workflow's execution contexts, include CSV Import, or the import won't start it. This example has no condition. In your account, add one such as Source Order for Reports is empty, so later saves don't rewrite the value.
Click Save. The workflow designer opens with State 1. The Workflow panel shows Record Type Transaction (Item Fulfillment, Item Receipt), Release Status Released and Events On Create, On View Or Update.
04. Add the Set Field Value action
Double-click State 1. On its Actions subtab, click New Action and choose Set Field Value. Change Trigger On from Entry to After Record Submit. That runs after the record is saved, when Created From is final.
In Parameters, choose Source Order for Reports in Field. Under Value, select From Field, keep Record (Join Field) at Current Record and choose Created From in Field.
Click Save on the action, then Save on the state. The State panel lists Set Field Value under Record Save, After Record Submit, with Source Order for Reports=Created From.
05. Add the field to the report
Go back to Reports > Inventory/Items > Inventory Activity Detail and click Customize. Change the Name to Inventory Activity Detail with Source Order. Expand Quantity On Hand, scroll to the S fields and click Source Order for Reports. It's added as the last column of the Report Preview. Change its Column Label to Source Order.
Click Save. The saved report opens with a Source Order column, and it's empty on all seven transactions. The workflow only fills the field when a transaction is created or saved, and these were saved before it existed.
06. Export the fulfillments to update
The workflow won't fill existing transactions on its own. Each one has to be saved again, and a CSV import with Data Handling Update does that in bulk. With only Internal ID mapped, it saves each listed record without changing a field from the file. Anything that runs on save, such as this workflow, still runs. Start with a list of the records to update.
Open the saved search Fulfillments Sep 2026. Here it's in Recent Records. It lists IF551, IF552, IF553, IF554 and IF555 with their Internal IDs. Click the CSV export icon.
The file FulfillmentsSep2026Results.csv has the columns Internal ID, Document Number and Type, one row per fulfillment. Only Internal ID is needed for the update.
Decide the scope before you run it, for example the fulfillments dated in the periods you report on. Try one record first, check that the field filled in, then run the rest.
07. Import the file as an update that triggers workflows
Go to Setup > Import/Export > Import CSV Records. Choose Transactions in Import Type and Item Fulfillment in Record Type, click Select... and choose FulfillmentsSep2026Results.csv. Click Next.
Under Data Handling, select Update. Expand Advanced Options and check that Run Server SuiteScript and trigger WorkFlows is checked. Its default comes from your account's CSV import preferences, so it may already be on, as it is here. If it's off, the import saves the records and the field stays empty. Click Next.
Field Mapping shows Internal ID mapped to Item Fulfillment : Internal ID. Document Number and Type stay unmapped, so no field on the fulfillments changes. Click Next.
Choose Run. Open the import's Job Status. The job is Complete with 5 of 5 records imported successfully. If a record fails, for example because it's in a closed period, locked by an approval or blocked by a script or permission, the CSV Response file lists it.
08. Confirm the column in the saved report
Go to Reports > Saved Reports > All Saved Reports and click View on Inventory Activity Detail with Source Order.
Check the result (example values)
- Before the import, the Source Order column was blank on all seven transactions.
- Job Status shows Complete, 5 of 5 records imported successfully.
- Source Order reads Sales Order #SO2214 for IF551, #SO2221 for IF553, #SO2230 for IF555, #SO2219 for IF552 and #SO2226 for IF554.
- IR301 and IR302 are still blank.
The item receipts stay blank because they weren't in the file. To fill them, export the receipts the same way and run a second import: Transactions, Record Type Item Receipt, Data Handling Update, only Internal ID mapped, with Run Server SuiteScript and trigger WorkFlows checked. From here on, new fulfillments and receipts fill the column as they're saved. If a value looks wrong, open the transaction and compare Source Order for Reports with its Created From.
The same Set Field Value action can fill a field with the current user instead. See how to show who entered a sales order with a workflow.
Common questions
Why is my new custom field blank on old transactions?
The workflow fills the field when a transaction is created or saved. Creating the field and the workflow doesn't touch transactions that already exist. Save them again with a CSV update that has Run Server SuiteScript and trigger WorkFlows checked, one import for item fulfillments and another for item receipts.
Can I use a mass update instead of a CSV import?
This guide doesn't show one. The CSV update was chosen because it saves every listed record and has its own switch for running workflows during the import, and the Job Status tells you which records failed. A mass update only helps if the way it saves each record starts the workflow. If you try it, test it on a few records and check the field before running it on the rest.
Why doesn't my custom field show up in Report Builder?
Report Builder doesn't offer every field on every report. Check that the field has Store Value checked and applies to the transaction types the report lists, here Item Fulfillment and Item Receipt. In this example it appeared under Quantity On Hand, with the S fields. If it's still missing, that report may not offer custom body fields in your account.
Can I use a saved search instead of customizing the standard report?
Yes. A transaction saved search can show fulfillments with their Created From directly, without a custom field or workflow. This guide customizes Inventory Activity Detail because the goal was to keep that report's grouping by item and its quantity totals. The saved-search route isn't shown here.
Will the workflow overwrite the value every time a fulfillment is edited?
As set up here, yes. It initiates On Create and On View Or Update with no condition, so every save writes Created From into the field again. Usually that's the same value. If you don't want later saves to touch it, add a condition such as Source Order for Reports is empty.
Can I store the source transaction as a List/Record field instead of Free-Form Text?
Possibly, but this guide doesn't test it. Free-Form Text stores the text the report shows, such as Sales Order #SO2214. A List/Record field changes how the workflow sets the value, whether the report offers the field and how it displays, so try it on one record and check the report before you backfill.