Skip to main content
The Developer Portal lets you build apps that extend Feedal — custom integrations, content-type plugins, and event hooks — and publish them to the marketplace for other users to install. Access it from Developers in the sidebar.

Creating a developer profile

Before submitting an app, set up a public developer profile. This is shown to users in the marketplace alongside your apps.
  1. Go to Developers → Profile.
  2. Fill in your details and click Save.
FieldDescription
Display nameYour name or organisation name, shown in the marketplace
WebsiteYour website or documentation URL
DescriptionA short bio or description of what you build
Once a profile exists, your account can submit apps for review.

Submitting an app

1

Create the app record

Go to Developers → Apps and click New app. Fill in the name, description, category, and optionally an icon URL.
2

Write the manifest

Paste your plugin manifest JSON into the manifest editor. The manifest describes what your app does and where Feedal should send events or load UI bundles. See the manifest schema below.
3

Test delivery

Click Test delivery to fire a test payload to all event_hook endpoints declared in your manifest. The test log shows response codes and latency. Fix any failures before submitting for review.
4

Submit for review

When your app is working, click Submit for review. The Feedal team reviews manifests for security, correctness, and policy compliance. You’ll receive an email when the review is complete.

Manifest schema

The manifest is a JSON document that declares what your app does.
{
  "schema_version": "2.0",
  "id": "my-crm-integration",
  "name": "My CRM Integration",
  "version": "1.0.0",
  "author": {
    "name": "Acme Corp",
    "url": "https://acme.com"
  },
  "description": "Sync form responses to Acme CRM automatically.",
  "category": "crm",
  "extension_points": [
    {
      "type": "event_hook",
      "delivery_endpoint": "https://api.acme.com/webhooks/feedal",
      "events": ["session.completed"]
    }
  ]
}

Extension point types

event_hook

Feedal POSTs to your delivery_endpoint every time one of the listed events fires. The payload is identical to the standard webhook payload.
{
  "type": "event_hook",
  "delivery_endpoint": "https://api.example.com/webhooks/feedal",
  "events": ["session.completed"]
}

content_type

Registers a custom question type rendered via a sandboxed iframe. See Content type plugins for the full build guide.
{
  "type": "content_type",
  "question_type_id": "signature-capture",
  "display_name": "Signature Capture",
  "renderer_bundle_url": "https://cdn.example.com/signature-plugin/v1.0.0/bundle.esm.js",
  "version": "1.0.0",
  "icon": "✍️"
}

Validation rules

  • schema_version, id, name, version, and extension_points are required
  • All URLs must use https://
  • id must be unique across all your submitted apps
  • extension_points must be a non-empty array

App statuses

StatusMeaning
pendingSubmitted; awaiting Feedal review
approvedReview passed; app is live in the marketplace
rejectedReview failed; see feedback in the portal
Rejected apps can be updated and resubmitted.

Updating a published app

  1. Edit the manifest or description in Developers → Apps → your app.
  2. Increment the version field in the manifest.
  3. Click Submit for review — updates go through the same review process.

Next steps

Content type plugins

Build a custom question type with the plugin SDK.

Marketplace

Browse installed and available apps.