RUMBO IA CRM — OpenAI Plugin Submission Portal Runbook

Date: 2026-09-11 UTC Budget invariant: MONEY_SPEND=0 Submission authority: NOT_GRANTED Publication authority: NOT_GRANTED

Source of truth:

  • Candidate SHA: 9152f5a50de42be55508f0effed5ed09aee44c60
  • OpenAI organization: Rumbo
  • Connected project: Default project
  • Submission portal: https://platform.openai.com/plugins
  • Submission type: With MCP
  • MCP URL type: Universal

Gate 0 — do not start submission until these are proven

  1. The acting account is signed into the OpenAI Platform organization that owns the submission and has Apps Management: Write. Organization owners already have this permission; non-owner submitters require an assigned role with Write.
  2. A verified individual or business identity exists in the same OpenAI Platform organization/project and matches the public RUMBO IA listing, website, support, privacy, and terms.
  3. The selected OpenAI Platform project is proven to use GLOBAL data residency. Current MCP review requirements state that EU-residency projects cannot submit MCP plugins for review.
  4. A production MCP URL has been explicitly authorized. The current rumbo-crm-openai-staging.val.run endpoint remains a technically verified staging/review candidate and must not be represented as production without separate authority.

Info tab

Use PORTAL_PACKET.json as the source of truth.

  • Name: RUMBO IA CRM
  • Category: PRODUCTIVITY
  • Short/long descriptions: copy from PORTAL_PACKET.json.
  • Website: https://rumbo.verso.fans/ — use the publisher-facing corporate website from PORTAL_PACKET.json; support/privacy/terms remain the self-hosted Val URLs because those exact pages currently pass the MCP disclosure gates.
  • Support: https://rumbo-crm-openai-staging.val.run/support
  • Privacy: https://rumbo-crm-openai-staging.val.run/privacy
  • Terms: https://rumbo-crm-openai-staging.val.run/terms
  • Logo asset: PORTAL_LOGO.svg, SHA-256 3ac48eb17d735ee41d12e6edf0cc0ea0e5a55358cce6b5fd37d93b3fc0372205.
  • Developer Identity: select only a verified identity that matches the public listing.

MCP tab

  1. Select Universal.
  2. Enter the authorized production MCP URL. Do not submit the current staging hostname as production until that promotion is explicitly authorized.
  3. Authentication: None for the current bounded public v1.
  4. Custom UI: none; CSP is not applicable because this v1 exposes no UI resources.
  5. If the portal displays Domain not verified, copy the exact generated token into the Val Town environment variable OPENAI_APPS_CHALLENGE_TOKEN without exposing it in chat or source control.
  6. Verify the challenge returns only the exact token at /.well-known/openai-apps-challenge.
  7. Select Scan Tools.
  8. Require the scan to discover exactly these four tools:
    • crm_get_service_readiness
    • crm_prepare_note
    • crm_prepare_lead_stage_change
    • crm_prepare_outreach_draft
  9. Verify each scanned tool advertises readOnlyHint=true, openWorldHint=false, destructiveHint=false, accurate input/output schemas, and no unexpected tools/resources.
  10. If Scan Tools reports drift, stop, fix the server, rerun local gates, and scan again. Do not override a server-side annotation mismatch with portal prose.

Prompts and tests

  • Starter prompts: copy the four prompts from PORTAL_PACKET.json.
  • Submission import artifact: chatgpt-app-submission.json (READY_VALIDATED_NOT_UPLOADED). If the portal offers JSON import, upload it; otherwise copy its fields manually.
  • Positive tests: exactly 5.
  • Negative tests: exactly 3.
  • Review checks: SUBMISSION_REVIEW_CHECKS.md.
  • No reviewer credentials are required because authentication is None.
  • Do not provide UI screenshots because this v1 has no custom UI.

Global availability

Select only countries/regions that are explicitly approved for launch and for which product support and legal terms are ready. Current state is UNSET_FAIL_CLOSED; do not infer a distribution scope automatically.

Release notes

Use the initial-submission release note from PORTAL_PACKET.json. Confirm that it states the bounded proposal-only surface, no customer-data reads, no CRM mutations, no autonomous sends, and no authentication requirement.

Hard stop before review

Before selecting Submit for Review, rerun:

  • verify.ts
  • verify_submission_import.ts
  • verify_portal_packet.ts
  • verify_portal_evidence_v6.ts
  • submission_gate.ts

Proceed only when submission_gate.ts reports no technical or portal-state blockers and separate submission authority has been granted.

TECHNICAL_PASS != PORTAL_PASS != SUBMISSION_AUTHORITY != PUBLICATION

After approval, publication is a separate action and remains unauthorized until explicitly granted.