Getting started

From a blank folder to an app in the review queue — about ten minutes.

1 · Create a developer account

Create your account (it's a full Ivorycom workspace — your apps, sandbox installs and submissions live in it). Verify the email we send you; the link drops you straight into the developer console.

2 · Get a token

Every developer API call carries your platform JWT. Sign in via the API or copy the session token the console uses:

curl -s -X POST https://app.ivorycomcrm.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]", "password": "•••"}'
# → { "accessToken": "eyJ…", "refreshToken": "…" }   (a 6-digit email code follows if MFA is enabled)
export TOKEN="eyJ…"
Access tokens live 15 minutes; exchange the refresh token at POST /api/auth/refresh. Details in Authentication.

3 · Scaffold

git clone https://github.com/ivorycom-platform/ivorycom-marketplace
cd ivorycom-marketplace && npm install
npx tsx sdk/src/scaffold.ts my-connector

You get a manifest.json (the package — see App manifest) and a connector.ts implementing the sync contract with cursor pagination and 429 backoff prewired.

4 · Certify locally

TOKEN=$TOKEN npx tsx sdk/src/certify-cli.ts my-connector/manifest.json
# ✓ Manifest matches the package schema
# ✓ Requested permissions are known scopes
# …
# CERTIFICATION: PASS

The CLI calls the live certification API — the exact suite that runs on submission, so local green means submission green.

5 · Submit

curl -s -X POST https://app.ivorycomcrm.com/api/marketplace/developer/apps/submit \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"manifest\": $(cat my-connector/manifest.json), \"reviewPacket\": $(cat my-connector/review-packet.json)}"
# → { "accepted": true, "versionStatus": "in_review", "certification": { … } }
Every submission carries a security & app review packet — demo video, sandbox attestation, security questionnaire and reviewer test instructions. The console's Submit tab is a guided form for all of it; example packets ship in examples/*/review-packet.json.

Track the review verdict in the console (or GET /developer/apps). Once an operator publishes it, your app is live in the in-app Marketplace with ratings, install counts and full install governance.

What to read next

you're building…read
A data connector (Stripe-like)Connector SDKCertification
An industry app (objects + automations)Custom objectsWorkflows
An AI assistantAI agents
Event-driven servicesWebhooks