PHPackages                             iqual/iq\_content\_publishing\_contentbird - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. iqual/iq\_content\_publishing\_contentbird

ActiveDrupal-module[API Development](/categories/api)

iqual/iq\_content\_publishing\_contentbird
==========================================

Provides contentbird integration for the Content Publishing framework. Enables syncing Drupal content statuses and publishing workflows with the contentbird platform.

047↓16.7%PHP

Since Mar 18Pushed 1mo agoCompare

[ Source](https://github.com/iqual-ch/iq_content_publishing_contentbird)[ Packagist](https://packagist.org/packages/iqual/iq_content_publishing_contentbird)[ RSS](/packages/iqual-iq-content-publishing-contentbird/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Content Publishing: Contentbird
===============================

[](#content-publishing-contentbird)

Provides [contentbird](https://www.contentbird.io/) integration for the [Content Publishing](https://github.com/iqual-ch/iq_content_publishing) framework. Enables publishing Drupal content to contentbird as articles, wiki pages, or social media posts.

Requirements
------------

[](#requirements)

- **Drupal** ^11
- **[iq\_content\_publishing](https://github.com/iqual-ch/iq_content_publishing)** ^1 — The base Content Publishing framework
- **[iq\_contentbird\_api](https://github.com/iqual-ch/iq_contentbird_api)** dev-main — Provides the contentbird API client and centralized API token management

Installation
------------

[](#installation)

Install via Composer:

```
composer require iqual/iq_content_publishing_contentbird
```

Enable the module:

```
drush en iq_content_publishing_contentbird
```

Configuration
-------------

[](#configuration)

### 1. Configure the Contentbird API Token

[](#1-configure-the-contentbird-api-token)

API token authentication is managed centrally by the **iq\_contentbird\_api** module. Navigate to:

> **Administration » Configuration » Contentbird API settings**(`/admin/config/services/contentbird-api`)

Enter your contentbird API token and save.

### 2. Create a Publishing Platform Configuration

[](#2-create-a-publishing-platform-configuration)

Navigate to:

> **Administration » Configuration » Content Publishing » Platforms**

Add a new platform configuration and select **Contentbird** as the platform type.

The credentials form will display the current connection status (connected/not connected) and provide a link to the Contentbird API settings if configuration is needed.

### 3. Configure Platform Settings

[](#3-configure-platform-settings)

In the platform configuration form, set the following:

SettingDescription**Contentbird Project**Select the contentbird project to publish content to. This determines which social profiles are available.**Status**The contentbird content status to set when content is sent (e.g., "Draft", "In Review"). Only unpublished statuses are shown.**Send published URL**When enabled, the canonical Drupal URL of the node is sent to contentbird along with the content.### 4. Fetch Available Content Statuses (Optional)

[](#4-fetch-available-content-statuses-optional)

On the platform configuration list, use the **Fetch Content Statuses** operation to retrieve all available content status IDs from your contentbird account. These IDs are displayed as status messages for reference.

Features
--------

[](#features)

### Multi-Tool Platform

[](#multi-tool-platform)

This module implements the `MultiToolPlatformInterface`, providing multiple publishing tools within a single platform:

#### Content Tools

[](#content-tools)

Dynamically discovered from your contentbird account. Each content type (Wiki, News, Blog, etc.) becomes a separate publishing tool:

- **Format**: `content:{type_id}` (e.g., `content:1` for Wiki)
- **Output schema**: Title, Summary/meta description, HTML content body
- **AI instructions**: Tailored prompts for each content type

#### Social Media Tools

[](#social-media-tools)

Discovered from the connected social profiles in your selected contentbird project:

- **Format**: `social:{profile_id}`
- **Supported platforms**: Facebook, LinkedIn, X (Twitter), Instagram, and others configured in contentbird
- **Output schema**: Post content (plain text), optional images (up to 3), status (draft/publish/publish\_at), scheduled time
- **AI instructions**: Platform-specific prompts for engaging social posts

### Content Publishing Workflow

[](#content-publishing-workflow)

When content is published through the publishing workflow, the plugin:

1. **Updates existing content** in contentbird if a contentbird ID is associated with the node.
2. **Creates new content** in contentbird if no existing ID is found, and stores the returned contentbird ID for future updates.
3. **Syncs metadata** including the title, summary/meta description, and HTML content body.
4. **Sets the content status** based on the configured status.

### Social Media Publishing

[](#social-media-publishing)

For social media tools, the plugin:

1. **Creates a social post** via the contentbird API, targeting the selected profile/page.
2. **Supports scheduling** with draft, publish immediately, or publish at a specific time.
3. **Attaches images/videos** to the post when provided.
4. **Includes the Drupal URL** as a promotion link (for platforms that support it like Facebook and LinkedIn).

### AI-Assisted Content Transformation

[](#ai-assisted-content-transformation)

The plugin provides output schemas and AI instructions for the Content Publishing framework's AI integration:

**Content tools output schema:**

- **Title** — SEO-friendly content title
- **Summary** — Meta description (max 160 characters)
- **Content body** — Clean HTML content

**Social tools output schema:**

- **Post content** — Platform-appropriate text (no HTML)
- **Images** — Optional image attachments
- **Status** — Publishing status
- **Scheduled time** — For scheduled posts

**Available tokens in AI instructions:**

- `[node:title]` — The content title
- `[node:url]` — The full URL to the content
- `[node:summary]` — The content summary
- `[node:content_type]` — The content type label

### Contentbird ID Storage

[](#contentbird-id-storage)

The contentbird content ID is stored on the node using one of two strategies:

1. **Dedicated field** — If the node has a `field_contentbird_id` field, it is used directly.
2. **Key-value storage** — As a fallback, the ID is stored in Drupal's key-value store under the `iq_content_publishing_contentbird` collection.

API Reference
-------------

[](#api-reference)

### Plugin ID

[](#plugin-id)

`contentbird`

### Plugin Interfaces

[](#plugin-interfaces)

- `ContentPublishingPlatformBase` — Base platform functionality
- `MultiToolPlatformInterface` — Multi-tool support (content types + social profiles)

### Key Methods

[](#key-methods)

MethodDescription`getAvailableTools()`Returns available content types and social profiles from the API`getOutputSchemaForTool()`Returns tool-specific output schema (content vs social)`getDefaultAiInstructionsForTool()`Returns tool-specific AI prompts`publish()`Routes to content creation/update or social post creationLicense
-------

[](#license)

GPL-2.0-or-later

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance59

Moderate activity, may be stable

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/43082de1b2e2b2b2d48b7ff7dbc7c60ff1d0a015123d4062ac0b49ea0b3b725f?d=identicon)[iqual](/maintainers/iqual)

---

Top Contributors

[![youpixxl](https://avatars.githubusercontent.com/u/3398689?v=4)](https://github.com/youpixxl "youpixxl (15 commits)")

### Embed Badge

![Health badge](/badges/iqual-iq-content-publishing-contentbird/health.svg)

```
[![Health](https://phpackages.com/badges/iqual-iq-content-publishing-contentbird/health.svg)](https://phpackages.com/packages/iqual-iq-content-publishing-contentbird)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
