OpenAI GPT Actions Integration

This guide explains how to connect JMPY tools (URL shortening, QR codes, analytics) to ChatGPT using Custom GPT Actions.
ChatGPT vs ClaudeOpenAI ChatGPT uses GPT Actions, not the Model Context Protocol (MCP). MCP is Anthropic’s protocol for Claude.GPT Actions require:
  1. An OpenAPI specification (describes API endpoints)
  2. OAuth authentication (to identify users)

Prerequisites

OpenAI Account

OpenAI Plus, Team, or Enterprise account (required for custom GPTs)

JMPY Account

Active account at jmpy.me with API access

Quick Setup

1

Create a Custom GPT

Go to ChatGPTExplore GPTsCreate
2

Configure the GPT

Set name, description, and system instructions
3

Add JMPY Actions

Import the OpenAPI specification
4

Configure OAuth

Set up OAuth authentication
5

Test and Publish

Verify the integration works

Step 1: Create a Custom GPT

  1. Go to ChatGPT
  2. Click Explore GPTsCreate
  3. You’ll enter the GPT Builder interface

Step 2: Configure Your GPT

Fill in the GPT configuration:
Name
string
JMPY Assistant
Description
string
Shorten URLs and generate QR codes using JMPY.me
Instructions
string
Copy this instruction prompt:
You are a helpful assistant that uses JMPY.me to:
- Shorten long URLs into tiny, memorable links
- Generate QR codes for URLs, text, WiFi, vCards
- Track link click analytics and statistics
- Manage custom branding domains
- Create and track marketing campaigns

When users ask to shorten a URL, use the shortenUrl action.
When users ask for a QR code, use the generateQr action.
Always confirm success and show the resulting short URL or QR code.

Step 3: Add JMPY Actions

  1. Scroll down to the Actions section
  2. Click Create new action

Import the OpenAPI Schema

After importing, you should see actions like shortenUrl, generateQr, listUrls, etc.

Step 4: Configure OAuth Authentication

  1. Click the Settings (gear icon ⚙️) next to Authentication
  2. Select OAuth as the authentication type
  3. Fill in these values:
Client ID
string
required
openai
Client Secret
string
required
jmpy-openai-integration-2024
Authorization URL
string
required
https://jmpy.me/mcp/oauth/authorize
Token URL
string
required
https://jmpy.me/mcp/oauth/token
Scope
string
required
shorturl:read shorturl:create qrcode:read qrcode:create analytics:read
Token Exchange Method
string
Select: Default (POST request)
  1. Click Save

Set Privacy Policy

At the bottom of the Action editor, add:
Privacy Policy URL
string
https://jmpy.me/privacy

Step 5: Test Your Integration

In the Preview pane of the GPT builder, try these prompts:

Shorten URL

Create QR Code

“Create a QR code for jmpy.me”

List URLs

“Show my short URLs”

Get Stats

“How many clicks do my links have?”

First-Time Authorization

  1. ChatGPT will prompt you to Sign in with JMPY
  2. Click the button to authorize
  3. Log in to your JMPY account (if not already)
  4. Approve the permissions
  5. ChatGPT will now use JMPY tools on your behalf!
Token Refresh: You only need to authorize once. Access tokens expire after 1 hour, but ChatGPT automatically refreshes them using the refresh token.

Step 6: Publish Your GPT

  1. Click Save (top right)
  2. Choose visibility:
    • Only me - Private testing
    • Anyone with a link - Shareable link
    • Everyone - Public in GPT Store
  3. Confirm and publish

Available Tools

Once connected, your Custom GPT can use these JMPY tools:
ToolDescriptionExample Prompt
shortenUrlCreate a short URL”Shorten example.com/long/path”
listUrlsList your short URLs”Show my links”
getUrlGet URL details”Get info for xyz123”
generateQrCreate QR code”Make a QR for jmpy.me”
listQrCodesList your QR codes”Show my QR codes”
getUserUrlStatsGet your statistics”How many clicks do I have?”

Troubleshooting

Cause: OAuth sign-in not completedSolution:
  • The GPT should prompt you to sign in when you first try to use an action
  • If not, check that Actions are properly configured
  • Try saying “shorten google.com” to trigger the OAuth flow
Verify these URLs are exactly correct:
  • Authorization: https://jmpy.me/mcp/oauth/authorize
  • Token: https://jmpy.me/mcp/oauth/token
Check credentials:
  • Client ID: openai
  • Client Secret: jmpy-openai-integration-2024
Solution:
  1. Fetch the latest schema from https://jmpy.me/.well-known/openapi.json
  2. The schema must be valid OpenAPI 3.1.0
  3. Try re-importing using the URL option
Cause: Access token expired and refresh failedSolution:
  • Try the action again - ChatGPT should automatically refresh
  • If persistent, revoke and re-authorize from JMPY dashboard

Revoke Access

If you need to disconnect ChatGPT from your JMPY account:
  1. Go to JMPY Dashboard → API Key ManagementConnected Apps
  2. Find your OpenAI/ChatGPT connection
  3. Click Revoke

Quick Reference

Copy-paste values for easy setup:
SettingValue
OpenAPI URLhttps://jmpy.me/.well-known/openapi.json
Client IDopenai
Client Secretjmpy-openai-integration-2024
Authorization URLhttps://jmpy.me/mcp/oauth/authorize
Token URLhttps://jmpy.me/mcp/oauth/token
Scopeshorturl:read shorturl:create qrcode:read qrcode:create analytics:read
Privacy Policyhttps://jmpy.me/privacy

About API Keys

When you authorize ChatGPT, an API key is automatically created for it in your JMPY account. This key:
  • Is linked only to ChatGPT (cannot be used elsewhere)
  • Inherits your plan’s limits and quotas
  • Can be viewed in Dashboard → Connected Apps
  • Can be revoked at any time
You don’t need to manually create or manage API keys for ChatGPT. The OAuth flow handles everything automatically.

Next Steps