I would make your first Codex session deliberately ordinary: four campaign rows, a report and a few arithmetic checks. You should leave understanding how the work happened, not just impressed that text appeared in a terminal.
Call it the known-answer exercise. When you already know the totals, you can spend your attention learning the agent’s workflow instead of guessing whether the result is right.
Prepare a small workspace
Create a new folder for the exercise and download the fictional campaigns.json file into it. The file describes four campaigns, their spend, leads, opportunities and attributed pipeline. It contains no real customer performance.
Open a terminal in that folder. On a team repository, inspect the existing state before doing anything else; for this exercise, a separate folder makes the boundary easier to understand. Keep your original input unchanged and ask for generated output under a new name.
If you prefer desktop or an IDE, you can use the same exercise after opening the folder there. The command sequence below is specifically the CLI route. Mixing client-specific instructions is a common source of first-day confusion.
TipUse a folder name you can recognize in the terminal prompt, such as codex-campaign-practice.
Install the CLI through a supported method
The official CLI documentation supports installation through npm, Homebrew and standalone installers. The npm route below requires Node.js and npm to be installed already. If those prerequisites are missing, use the official installation guidance for your operating system rather than guessing at shell fixes.
Run npm install -g @openai/codex, then check codex --version. Installation permissions depend on how your local Node environment is configured. An installation error is a setup issue; it does not mean your ChatGPT account or project prompt is wrong.
I would use a supported installation method consistently so updates remain understandable. Avoid copying an unexplained script from an unrelated tutorial when the official instructions already provide a route.
TipConfirm the installed version before troubleshooting a command copied from a current guide.
Sign in and inspect the session
Run codex from the exercise folder and follow the available sign-in flow. The official getting-started route supports signing in with ChatGPT; other authentication options have different billing and capability implications. A ChatGPT subscription and API billing are separate systems.
Inside the interactive session, use /status to inspect the session and /permissions to inspect the available permission controls. Confirm the project directory and understand whether the run can edit files or execute commands. Use the supported defaults appropriate to the exercise.
Do not paste a secret into the task description to work around authentication. If sign-in fails, resolve the supported authentication flow. The first lesson should be how to start a session you understand, not how to hide a credential in its transcript.
TipRead the displayed working directory before granting access to a project.
Ask for inspection before generation
For the first message, ask Codex to inspect campaigns.json and explain its structure without editing it. The answer should identify the fictional-data notice, definitions and four campaign rows. This is a simple way to confirm it is reading the intended file.
Then compare its summary with the source. The known totals are $4,000 spend, 150 leads, 18 opportunities and $245,000 attributed pipeline. The pipeline value is unweighted and is not revenue. These definitions should survive every later output.
If the assistant cannot find the file, fix the path or selected folder. Do not proceed with a substitute dataset invented in the conversation. A clean missing-file result is preferable to a report that appears to work against different inputs.
TipAsk which file was read and whether any input was missing.
Request a report with an acceptance check
Ask Codex to create report.md with a campaign table, aggregate metrics and limitations. If it writes a helper script, require the script to read the source file rather than embedding a second copy of the numbers. That keeps the relationship between data and output inspectable.
Overall CPL must be total spend divided by total leads, approximately $26.67. The overall opportunity rate is 18 divided by 150, or 12 percent. A simple average of campaign CPLs gives a different answer and should not be labeled the aggregate rate.
Require the agent to show its calculation method and report the checks it ran. The exercise is complete when the files and numbers agree, not when the final message uses the word done.
TipKeep the expected totals in the prompt so the verification target is explicit.
Inspect commands and generated files
Watch the commands and edits as the task proceeds. For a simple report, the activity should remain within the exercise folder and relevant tooling. If the agent proposes unrelated installation, network access or changes elsewhere, ask why they are necessary before broadening the task.
Open report.md yourself. Check the totals, labels and limitations. If there is a script, inspect its inputs and output location. A script that overwrites the original dataset or silently ignores missing rows deserves correction even if the current totals happen to match.
For an unfamiliar command, ask what it does and what files it changes. Understanding one small workflow is more useful than allowing a long sequence you cannot explain. You can add complexity after the basic loop becomes familiar.
TipRead the actual artifact; the completion summary can omit formatting or content mistakes.
Try one controlled failure
Copy the fictional input to a separate test file and remove a required value. Ask Codex how the report should handle that case, then test the chosen behavior. The workflow should identify the missing field or mark the affected metric unavailable rather than silently converting uncertainty into zero.
You can also try a zero-lead campaign. A division-by-zero case should produce a clear unavailable result or a controlled error with a useful message. The exact policy depends on the report, but it should be visible and consistent.
This second run teaches more than another perfect example. You learn whether the implementation preserves the meaning of the business data when the input stops being tidy. Spreadsheets rarely stay tidy out of politeness.
TipKeep the original known-good fixture so you can rerun both success and failure cases.
Where setup gets stuck
If codex is not found, check installation and the shell path. If sign-in fails, inspect authentication. If the file is missing, check the current directory. If a command is blocked, inspect permissions and explain the needed operation. These are different problems with different fixes.
Do not respond to every obstacle by granting unrestricted access. A report task should need a modest, explainable environment. If the toolchain is missing, install only the required dependency through an understood route or choose a simpler output.
Once the exercise works, preserve the request and checks as a reusable reference. Your next task can use a small approved real export or a focused repository change. Which part of the process would you now be comfortable reviewing without help?
How to set it up
Prepare the exercise
Create a separate folder and save the linked fictional campaigns.json there.
Install and sign in
Use a supported CLI installation method, run codex from the folder and complete the sign-in flow.
Inspect and create
Check /status and /permissions, inspect the input, then run the report request above.
Verify and vary
Open report.md, check the known totals and test a separate malformed input without replacing the original.
Frequently asked questions
Do I need an API key?
The documented ChatGPT sign-in route does not require supplying an API key. API-key authentication is a separate option with separate billing implications.
Do I need Node.js?
The npm installation route does. Other official installation methods have different prerequisites.
Can I do this in the desktop app?
Yes, use the same input and request after opening the intended folder; the installation commands here are for the CLI.
What if codex is not found?
Check the installation result and shell path before changing account settings.
What should the overall CPL be?
The fictional fixture totals $4,000 spend and 150 leads, so overall CPL is approximately $26.67.
Should I upload real customer data first?
Begin with the fictional fixture. Introduce approved real data after you understand the environment and controls.
Why test missing values?
A workflow can pass a tidy example while silently mishandling incomplete exports.
Does finishing the exercise publish anything?
The requested task creates local report files. Publishing or sending would be a separate action and scope.
Sources & further reading
ChatGPT and Codex change quickly. This page was last reviewed September 22, 2026; verify time-sensitive details against the official docs above before relying on them.
Related GTM workflows
Use these existing playbooks to explore the business workflow. Adapt their tool-specific steps to your chosen environment and check the result.