How to Connect LinkedIn Ads to ChatGPT & Codex

Jul 22, 2026 by Ahmed Ali

TL;DR Connect LinkedIn Ads to ChatGPT and Codex through Markifact. Analyze B2B campaigns, manage ads and budgets, and approve every account change.

How to Connect LinkedIn Ads to ChatGPT & Codex

To connect LinkedIn Ads to ChatGPT and Codex, connect LinkedIn Ads inside Markifact, install the approved Markifact app in ChatGPT, select it in the conversation or Codex prompt, and test the connection with a read-only report. This gives both OpenAI surfaces access to the Campaign Manager accounts authorized through your Markifact workspace, without developer mode, a LinkedIn developer app, or a local MCP server. You can then analyze performance, research B2B targeting, build campaigns and ads, and prepare account changes that wait for approval.

The LinkedIn OAuth connection stays inside Markifact, while ChatGPT and Codex each control how the Markifact app can be used on their surface.

The quick version

For ChatGPT:

  1. Connect LinkedIn Ads inside Markifact.
  2. Open the public Markifact app listing in ChatGPT and select Connect.
  3. Authorize the Markifact workspace containing the LinkedIn Ads connection.
  4. Start a new conversation and add Markifact from the plus menu, then More.
  5. Select the exact LinkedIn ad account and run a read-only report.
  6. Review and approve any later campaign, budget, targeting, or ad change.

For Codex:

  1. Open Codex from the ChatGPT desktop app.
  2. Browse apps or connectors and select Markifact where it is available.
  3. Authenticate Markifact if Codex asks, even when the app is already connected in ChatGPT.
  4. Apply Codex-specific permission controls.
  5. Run the same account check and read-only report before requesting a write.

Installing the Markifact app does not automatically create a LinkedIn Ads connection. Connect the ad account inside the Markifact workspace first.

What you are actually connecting

The setup has two authorization layers:

LinkedIn Ads → Markifact

This is the LinkedIn OAuth connection. It gives Markifact access to the ad accounts and actions permitted to the signed-in LinkedIn member.

Markifact → ChatGPT or Codex

This lets the selected OpenAI surface call the LinkedIn Ads operations available through that Markifact workspace.

The complete path is:

ChatGPT or Codex → Markifact → your authorized LinkedIn ad account

The LinkedIn Ads MCP page explains the current managed capabilities. Markifact handles the hosted connection, LinkedIn authentication, operation catalog, and approval boundary.

LinkedIn also provides official Marketing APIs for developers. This route does not require you to create a developer application, request an API access tier, host a server, or maintain version migrations.

What you need before starting

You need:

  • A Markifact workspace
  • A LinkedIn member with access to the intended Campaign Manager account
  • Access to the public Markifact app in ChatGPT
  • The ChatGPT desktop app if you want to use Codex from the same product
  • Permission to use apps or connectors if your OpenAI workspace is managed

LinkedIn account roles still apply. A Viewer can see reports but cannot create or edit campaigns or ads. Creative Manager, Campaign Manager, Account Manager, and Account Billing Admin roles provide broader access. ChatGPT and Codex cannot expand the authority of the LinkedIn member connected inside Markifact.

Use current Campaign Manager terms in your prompts: campaigns, ad sets, and ads. Markifact handles the underlying LinkedIn API resource naming.

1. Connect LinkedIn Ads inside Markifact

Open Connections in Markifact, choose LinkedIn Ads, and click Connect.

Markifact LinkedIn Ads connection screen with a Connect to LinkedIn Ads button
Connect LinkedIn Ads to Markifact with the member that can access the intended Campaign Manager account.

Complete the LinkedIn OAuth flow with the LinkedIn member that can already open the required ad account. If you manage several clients, verify the account list after authorization instead of assuming the first account is correct.

Markifact requests reporting and management permissions for its LinkedIn Ads operations. LinkedIn still enforces the connected member's account role. A Viewer remains read-only even when an application supports writes.

After authorization, confirm that LinkedIn Ads appears in your Markifact connections. Use a clear connection name when the workspace contains several LinkedIn identities or agency clients.

2. Connect the approved Markifact app in ChatGPT

Open the public Markifact listing in ChatGPT and select Connect.

Public Markifact listing in ChatGPT with the Connect button
Open the approved Markifact listing in ChatGPT and connect the workspace containing LinkedIn Ads.

Sign in to the Markifact workspace containing the LinkedIn Ads connection from step one. Complete authorization and return to ChatGPT.

If you authorize the wrong workspace, disconnect Markifact on that OpenAI surface and repeat the process before running a report. An installed app cannot retrieve an account that is connected to a different Markifact workspace.

This approved-app route does not require ChatGPT developer mode. It also does not require you to paste https://api.markifact.com/mcp into ChatGPT.

3. Add Markifact to a ChatGPT conversation

Start a new ChatGPT conversation. Click the plus button beside the composer, choose More, and select Markifact from the available apps.

OpenAI documents this app-selection step as the way to add a connected app to the conversation context.

ChatGPT composer with Markifact selected for a LinkedIn Ads report
Add Markifact to the conversation before asking ChatGPT for LinkedIn Ads data.

Before asking for performance, identify the available ad accounts:

Use Markifact to list the LinkedIn Ads accounts available to this workspace.
Return the account name, account ID, currency, and status.
Do not run a report and do not make any changes.

A read-only operation such as linkedin_ads_select_accounts can identify the account. Select by both account name and ID because agency workspaces often contain similar campaign names.

4. Run a read-only LinkedIn Ads report first

Once you have the account ID, use a precise first prompt:

Use Markifact and LinkedIn Ads account [ACCOUNT_ID].

Compare the last 30 complete days with the previous 30 complete days.
Break down performance by campaign.
Include spend, impressions, clicks, CTR, leads, conversions,
cost per conversion, and ROAS where available.

Before the table, confirm the account name, account ID, currency,
timezone, and exact date ranges used.
If a field is unavailable, tell me instead of substituting it.
Do not make any changes.

For a request like this, Markifact can use linkedin_ads_get_report. It supports one or multiple accounts, date comparisons, metrics, dimensions, filters, sorting, and limits.

Illustrative LinkedIn Ads campaign report returned in ChatGPT through linkedin_ads_get_report
Illustrative read-only LinkedIn Ads report returned through Markifact in ChatGPT.

The values shown are illustrative. Your result uses the selected account, dates, and available LinkedIn reporting fields.

Before asking ChatGPT to diagnose performance, verify:

  1. The account name and ID are correct.
  2. The account currency and timezone are correct.
  3. Both date ranges contain complete days.
  4. The lead or conversion definition matches the business outcome.
  5. Any calculated ratio agrees with the displayed values.

Common metric examples include impressions, clicks, cost, conversions, costPerConversion, conversionValue, ctr, cpc, cpm, roas, and jobApplications. These are examples, not a promise that every field exists in every report.

5. Prepare a budget change and keep it behind approval

After the read-only test works, prepare one narrow change:

For LinkedIn Ads account [ACCOUNT_ID], inspect campaign [CAMPAIGN_ID].

Show its current daily budget, status, last-30-day spend,
conversions, and cost per conversion.
Then prepare a change from the current daily budget to [NEW_BUDGET]
in the account currency.

Do not execute the update until I approve the exact account,
campaign, current budget, proposed budget, and budget type.

Markifact can use linkedin_ads_update_campaign_budget. The operation accepts daily or lifetime budgets, supports single or bulk updates, and uses actual account-currency values.

LinkedIn Ads daily-budget update waiting for approval in ChatGPT
Illustrative LinkedIn Ads budget change waiting for explicit approval in ChatGPT.

The image uses illustrative values. The operation name and approval state are real. Review the account, campaign ID, current value, proposed value, currency, and budget type before approving.

The same approval rule covers campaign creation, ad-set creation, image, video, carousel, text, and Spotlight ads, sponsored posts, status changes, renames, targeting, conversion assignment, and lower-level updates. These are examples from a broader LinkedIn Ads catalog, not an exhaustive list.

6. Use the same LinkedIn Ads connection from Codex

OpenAI added Codex to the ChatGPT desktop app on macOS and Windows. Open the desktop app and switch to Codex.

Browse apps or connectors and select Markifact where it is available. In the Codex CLI, the current `/apps` command opens the app browser and lets you attach an available app to a prompt.

Codex may ask you to authenticate Markifact separately. This does not mean you need another LinkedIn OAuth connection. The LinkedIn account remains connected inside Markifact, while Codex creates its own permission to use the Markifact app.

ChatGPT app permissions do not automatically control apps authenticated in Codex. Review the Codex permission mode before running the first request. Then reuse the account-selection prompt and read-only report prompt from the previous sections.

If you want to automate a recurring report from a technical workspace, start by keeping the workflow read-only. Add approval-gated LinkedIn Ads writes only after the account selection, prompt, and output have been reviewed manually.

Real LinkedIn Ads operation examples

Markifact exposes a broad set of tools that ChatGPT or Codex can select based on the request. Read examples include:

  • linkedin_ads_select_accounts
  • linkedin_ads_get_report
  • linkedin_ads_list_campaigns, linkedin_ads_list_adsets, and linkedin_ads_list_ads
  • linkedin_ads_get_ad and linkedin_ads_list_posts
  • linkedin_ads_search_targeting
  • linkedin_ads_list_conversions
  • linkedin_ads_list_lead_forms and linkedin_ads_retrieve_leads
  • linkedin_ads_library

Write examples include:

  • linkedin_ads_create_campaign and linkedin_ads_create_adset
  • linkedin_ads_create_image_ad, linkedin_ads_create_video_ad, linkedin_ads_create_carousel_ad, linkedin_ads_create_text_ad, and linkedin_ads_create_spotlight_ad
  • linkedin_ads_create_ad_from_post
  • linkedin_ads_update_campaign_budget and linkedin_ads_update_adset_budget
  • Campaign, ad-set, and ad status updates, renames, lower-level edits, and conversion assignment

Every write requires approval. The operation names above are examples, not the full LinkedIn Ads support surface.

Copy-paste prompts for ChatGPT and Codex

Lead-generation performance

Use Markifact and LinkedIn Ads account [ACCOUNT_ID].
Compare the last 30 complete days with the previous 30 days
by campaign and ad set.

Include spend, leads, conversions, cost per conversion, CTR, and CPM.
Flag rows with at least [MINIMUM_SPEND] spend and no leads.
Separate evidence from recommendations and do not make changes.

Replace the threshold with a value appropriate for your account. It is not a universal benchmark.

Creative fatigue check

Analyze active LinkedIn ads in account [ACCOUNT_ID] for the last 8 weeks.
Show weekly impressions, clicks, CTR, spend, conversions,
and cost per conversion by creative.

Flag ads with three consecutive weeks of falling CTR and rising frequency
where those fields are available. Return each ad name and ID.
Do not pause or edit anything.

B2B targeting research

Use LinkedIn Ads targeting search to find valid values for:
[JOB_TITLES], [SENIORITY_LEVELS], [INDUSTRIES], [COMPANY_SIZES],
and [LOCATIONS].

Return the exact label and identifier for each match.
Do not create an audience, ad set, or campaign yet.

Lead form review

List the Lead Gen Forms available to LinkedIn Ads account [ACCOUNT_ID].
For form [FORM_ID], retrieve available leads for the last 30 days.
Summarize lead volume by campaign and ad and flag missing fields.
Do not update campaigns, forms, or lead records.

LinkedIn Ads Library research

Search the LinkedIn Ads Library for [COMPETITOR_OR_KEYWORD].
Group results by offer, format, audience angle, and call to action.
Separate observed creative patterns from interpretation.
Do not create ads from the findings.

Cross-account B2B report

Compare these LinkedIn Ads accounts: [ACCOUNT_A], [ACCOUNT_B], [ACCOUNT_C].
Use the last 30 complete days and each account's currency and timezone.
Return spend, impressions, clicks, CTR, leads, conversions,
and cost per conversion by account.
Label every row with account name and ID. Do not combine currencies.

Understand the three permission layers

The workflow has three different controls:

  1. LinkedIn role: controls account access and the actions permitted to the connected member.
  2. ChatGPT or Codex app permission: controls how the OpenAI surface may use Markifact.
  3. Markifact approval: stops every LinkedIn Ads write until the exact change is approved.

OpenAI currently documents three ChatGPT app permission levels: Always ask, Ask before making changes, and Ask only before important changes. The last is the documented default. Personal accounts can set global or per-app preferences in Settings, then Apps, while Business and Enterprise administrators control workspace defaults and overrides.

Apps authenticated in Codex use separate permission controls. Neither OpenAI permission system expands the connected LinkedIn member's account role, and neither replaces Markifact's write approval.

If you prefer Claude's custom-connector flow, see How to Connect LinkedIn Ads to Claude. For the broader official and third-party landscape, see The State of Advertising MCPs in 2026.

Troubleshooting

Markifact does not appear in ChatGPT

Open the direct public listing linked above. If you use a managed workspace, ask the administrator whether Markifact is available for your role.

Markifact appears in ChatGPT but not Codex

Availability can differ by surface and workspace policy. Browse apps or connectors from Codex and confirm that Markifact is discoverable. Do not assume the ChatGPT app connection carries into Codex.

The LinkedIn ad account is missing

Confirm that the LinkedIn member connected inside Markifact can open the account in Campaign Manager. Then verify that ChatGPT or Codex authenticated the Markifact workspace containing that connection.

Reports work but writes do not

Check the connected member's LinkedIn role, the OpenAI surface's app permission, and the Markifact approval request. A Viewer cannot make changes.

Authentication keeps reopening

Confirm the Markifact workspace and LinkedIn identity. If necessary, disconnect the app on the affected OpenAI surface and authenticate again without switching accounts midway.

The report is empty

Verify the account ID, dates, filters, and campaign delivery. Remove optional filters and run a basic spend and impressions report before adding conversions or creative dimensions.

A targeting value is invalid

Use linkedin_ads_search_targeting and request the exact label and identifier. Do not invent a similar title, company, industry, skill, seniority, or location value.

The approval prompt does not appear

Confirm that Markifact is the selected app and that the request actually contains a write. A reporting or listing operation is read-only and should not generate a write approval.

A practical first workflow

Use the same sequence on ChatGPT or Codex:

  1. Select the account by name and ID.
  2. Pull a 30-day report with a previous-period comparison.
  3. Verify spend, lead definitions, currency, and timezone.
  4. Narrow one issue by ad set, creative, audience, or placement.
  5. Request a recommendation with exact resource IDs.
  6. Prepare one change and review the approval request.
  7. Save the verified prompt for the next reporting cycle.

This sequence keeps account selection, evidence, interpretation, and execution separate. It also makes a later approval easier to review because the target has already been verified in the same conversation.

Frequently asked questions

Can ChatGPT connect to LinkedIn Ads?

Yes. Connect LinkedIn Ads inside Markifact, connect the approved Markifact app in ChatGPT, add it to a conversation, and select the exact ad account.

Do I need ChatGPT developer mode?

No. This guide uses the public Markifact app listing. You do not need developer mode, a custom app, a pasted MCP endpoint, or a local server.

Do I need a separate LinkedIn connection for Codex?

No. The LinkedIn OAuth connection stays inside Markifact. Codex may require separate Markifact authentication and permissions, but you do not reconnect the LinkedIn ad account.

Does the ChatGPT app permission carry into Codex?

No. Apps authenticated in Codex use separate permission controls. Review the permission mode on both surfaces.

Can ChatGPT create LinkedIn campaigns and ads?

Yes, when the connected LinkedIn member has sufficient permissions. Markifact supports campaigns, ad sets, several ad formats, targeting, conversions, budgets, statuses, and lower-level operations. Every write waits for approval.

Which LinkedIn role is required?

The connected member must have access to the ad account. A Viewer can retrieve reports but cannot make changes. Broader roles provide additional campaign, creative, account, or billing authority.

Can ChatGPT manage multiple LinkedIn ad accounts?

Yes. Markifact can expose multiple authorized accounts and report across selected accounts. Label results with account names and IDs and never combine currencies without conversion.

Is the operation list in this guide complete?

No. The named operations are examples. Markifact supports a much broader LinkedIn Ads surface, including lower-level campaign, ad-set, ad, targeting, conversion, lead, and reporting operations.

Why can ChatGPT report but not change a campaign?

The LinkedIn member may have a Viewer role, the OpenAI app permission may block writes, or the Markifact approval may still be pending. Check all three layers.

Looking to automate your marketing?

Markifact is a no-code platform that allows you to automate your marketing workflows seamlessly. With Markifact, you can create workflows that connect your favorite marketing tools and automate repetitive tasks, saving you time and effort.

Start Automating your Marketing