The Scenario
It's late January and the annual OSHA 300 log submission is three weeks out. You have an Excel workbook with 15 recordable injuries from the past quarter — establishment ID, injury date, description. Every one needs an OSHA case record in SafetyCulture before anyone can generate the final log. The submission workflow depends on those case IDs existing.
The last person who handled this built the cases manually, one at a time. You inherited the process when they changed roles.
The bad version:
- Open SafetyCulture's OSHA case creation form, fill in the establishment ID, injury date, and description for row 1, and save.
- Note the case ID — probably on a sticky note — and paste it back into the workbook.
- Repeat 14 more times, hoping you don't transpose any injury dates because OSHA cares a great deal about dates.
Three hours of form-filling for a deadline that arrives every year, for data that's already in your workbook.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent inside your Excel workbook. It reads your injury log, creates the OSHA cases in SafetyCulture, and writes the returned case IDs back into column E — no form-filling required.
Open the SheetXAI sidebar and paste this:
Create SafetyCulture OSHA cases for all 15 rows in my Excel injury log — using the establishment_id in column A, injury date in column B, and description in column C — and paste the case IDs to column D.
What You Get
- An OSHA case created in SafetyCulture for every row in the injury log.
- The returned case_id written to column D for each successful creation.
- Any failures — invalid establishment IDs, malformed dates — surfaced in column D so you know which rows need attention before the deadline.
- A completed column D that serves as your case creation audit trail for the submission.
What If the Data Is Not Quite Ready
The injury dates are formatted inconsistently
Some rows have "Jan 5, 2025," others have "2025-01-05," and a few have ambiguous two-digit year formats.
Normalize all injury_date values in column B to ISO 8601 format (YYYY-MM-DD) before creating the OSHA cases, then create one case per row and write the case_id to column D.
Multiple injuries at the same establishment need to be grouped
Group the injury log rows by establishment_id, create OSHA cases for each row, and write the case_ids to column D — noting which establishment each case belongs to in column E.
Some rows are missing a description
For rows where the description column is blank, use the text "No description provided" as the case description. Create all OSHA cases and write the case_ids to column D.
Full 300-log prep pipeline in one shot
Normalize injury dates in column B to ISO 8601, replace blank descriptions with "No description provided," create a SafetyCulture OSHA case for each row using the establishment_id in column A, and write the returned case_id or error to column D. At the end, write a summary to column F: total cases created and any rows that failed.
The log data moves from your workbook to SafetyCulture without touching a single form.
Try It
Get the 7-day free trial of SheetXAI and open your injury log workbook — then ask it to bulk-create your OSHA cases in SafetyCulture before the 300-log deadline. When you're done, see how the same workflow handles bulk-assigning incident collaborators or check the SafetyCulture integration overview.
