LendWorksLendWorksDocs

App Manifest

Define your app's identity, permissions, and configuration in a structured manifest.

Overview

The app manifest is a JSON document that defines your app's identity, required scopes, redirect URIs, and webhook configuration. You can configure the manifest through the developer dashboard or provide it as a JSON file.

Manifest Structure

{
  "name": "My CRM Integration",
  "slug": "my-crm-integration",
  "description": "Sync leads and funded deals with your CRM in real time.",
  "version": "1.0.0",
  "author": {
    "name": "Acme Software",
    "email": "support@acmesoftware.com",
    "url": "https://acmesoftware.com"
  },
  "oauth": {
    "redirectUris": [
      "https://yourapp.com/callback",
      "http://localhost:3000/callback"
    ],
    "scopes": [
      "leads:read",
      "leads:write",
      "funded-deals:read",
      "webhooks:manage",
      "app-data:read",
      "app-data:write"
    ]
  },
  "webhooks": {
    "url": "https://yourapp.com/webhooks/lendworks",
    "events": [
      "lead.created",
      "lead.status_changed",
      "deal.funded"
    ]
  },
  "marketplace": {
    "category": "CRM",
    "pricing": "free",
    "privacyPolicyUrl": "https://acmesoftware.com/privacy",
    "supportUrl": "https://acmesoftware.com/support",
    "websiteUrl": "https://acmesoftware.com"
  }
}

Fields Reference

Root Fields

FieldTypeRequiredDescription
namestringYesDisplay name shown in OAuth consent and marketplace (3–50 chars)
slugstringYesURL-friendly identifier, unique across all apps (3–50 chars, lowercase, hyphens)
descriptionstringYesShort description of what the app does (10–200 chars)
versionstringYesSemantic version of the app (e.g., 1.0.0)
authorobjectYesDeveloper or company information

Author

FieldTypeRequiredDescription
author.namestringYesDeveloper or company name
author.emailstringYesSupport contact email
author.urlstringNoDeveloper or company website

OAuth

FieldTypeRequiredDescription
oauth.redirectUrisstring[]YesAllowed redirect URIs for the OAuth callback (at least one required)
oauth.scopesstring[]YesScopes the app requests (see Scopes)

Webhooks

FieldTypeRequiredDescription
webhooks.urlstringNoDefault webhook delivery URL
webhooks.eventsstring[]NoDefault event types to subscribe to

If provided, a webhook subscription is automatically created when a user installs your app.

Marketplace

FieldTypeRequiredDescription
marketplace.categorystringYesOne of: CRM, Analytics, Automation, Communication, Compliance, Documents, Finance, Other
marketplace.pricingstringYesOne of: free, free_trial, paid
marketplace.privacyPolicyUrlstringYesLink to your privacy policy
marketplace.supportUrlstringYesLink to support resources
marketplace.websiteUrlstringNoLink to your product or company website

Validation

The manifest is validated when you create or update an app. Common validation errors:

ErrorCause
INVALID_SLUGSlug contains invalid characters or is already taken
INVALID_SCOPERequested scope does not exist
INVALID_REDIRECT_URIRedirect URI is not a valid URL or uses HTTP in production (localhost excepted)
MISSING_REQUIRED_FIELDA required field is missing

Updating the Manifest

You can update the manifest at any time while your app is in Draft state. For listed apps:

  • Non-breaking changes (description, support URL, webhook URL) apply immediately
  • Scope changes require a new marketplace review
  • Redirect URI changes apply immediately

See App Lifecycle for details on how updates work at each stage.