Custom AddOn Types

What Are Custom AddOn Types?

Custom AddOn Types define what kind of content your AddOn will insert into the Beefree email builder when users interact with it. Each type corresponds to a specific content module in the Beefree editor, such as images, buttons, paragraphs, or HTML blocks.

Think of AddOn Types as the "shape" of the content your AddOn produces. When you create a Custom AddOn in the Beefree SDK Developer Console, you must select a type that determines:

  • What content structure is inserted on the stage

  • Which sidebar properties appear when the module is selected

  • What schema your AddOn must use when resolving content

  • How users can edit the inserted content

How AddOn Types Work

1. Type Selection in Console

When creating a Custom AddOn in the Beefree SDK Developer Console, you select a Type from a dropdown menu. This type is permanently associated with your AddOn.

Create Custom AddOn Form:
├── Name: "My Custom AddOn"
├── Type: [Image ▼]  ← You select the type here
│         - Image
│         - HTML
│         - Mixed
│         - Row
│         - Paragraph
│         - Button
│         - Title
│         - List
│         - Menu
│         - Icon
├── Handle: "my-custom-addon"
└── ...

Note: The Console displays "Title" in the dropdown, but your code must use type: 'heading' when resolving content.

2. Content Object Schema

Each type requires a specific content object structure that your AddOn must return. This object is passed to the resolve() function in your handler.

Example: Image Type

Example: Button Type

3. Editor Integration

When a user drops your AddOn tile onto the stage:

  1. Content Dialog Opens (if using Content Dialog method) or Iframe Loads (if using Iframe method)

  2. User Interacts with your custom UI to create/select content

  3. Your Handler Resolves with a properly formatted content object

  4. Module Is Inserted on the editor stage

  5. Sidebar Updates to show properties specific to that type

4. Sidebar Properties

Each type displays different properties in the editor's sidebar when the module is selected:

Type
Sidebar Shows

Image

Image source, alt text, link, dimensions, alignment

HTML

HTML content (read-only via AddOn), padding, background

Button

Button text, link, colors, borders, padding, alignment

Paragraph

Text editor, font, colors, alignment, spacing

Title/Heading

Heading level, text, font, size, alignment

List

List type, items, font, colors, alignment

Menu

Menu items, links, layout, spacing

Icon

Icon images, links, sizes, alignment

Mixed

Varies based on included modules

Row

Column structure, background, padding, alignment

Available Custom AddOn Types

Beefree SDK currently supports 10 Custom AddOn Types. Each type serves different use cases and content needs.

Content Module Types

These types insert individual content modules:

Image AddOn

Inserts an image module with a source URL, alt text, and optional link.

Resolve Structure:


HTML AddOn

Inserts custom HTML markup. Content is only editable by reopening the AddOn.

Resolve Structure:


Paragraph AddOn

Inserts text paragraphs with formatting and support for merge tags.

Resolve Structure:


Button AddOn

Inserts pre-styled call-to-action buttons.

Resolve Structure:


Title/Heading AddOn

Inserts heading elements (H1-H3) with custom styling.

Resolve Structure:


List AddOn

Inserts ordered or unordered lists with formatting.

Resolve Structure:


Menu AddOn

Inserts navigation menus with multiple linked items.

Resolve Structure:


Icon AddOn

Inserts icon sets with images, labels, and links.

Resolve Structure:


Advanced Structure Types

These types insert more complex structures:

Mixed Content AddOn

Inserts multiple content modules at once in a single drop action.

Resolve Structure:


Row AddOn

Inserts a pre-built row structure with columns and multiple modules.

Resolve Structure:


Validation and Errors

Each type has a specific schema that must be followed. If your resolve() function returns an invalid content object:

  • The module will not be inserted on the stage

  • An error will be logged to the browser console

  • The onError callback in beeConfig will be triggered

Always validate your content objects match the expected schema for your type.

Type-Specific Documentation

For detailed information about each type, including:

  • Complete schema definitions

  • Working code examples

  • Implementation guides for both Content Dialog and Iframe methods

  • Advanced use cases

  • Best practices

Refer to the individual type pages:

Schema Resources

All Custom AddOn Types follow schemas defined in the Beefree SDK Simple Schema:

Each type has a corresponding JSON schema file in the repository that defines all valid properties and requirements.

Quick Start Example

Here's a minimal example showing how types work:

Last updated

Was this helpful?