This project is not covered by Drupal’s security advisory policy.
If you are new to Drupal, Feeds is a contributed module that imports content from external sources (for example CSV, RSS, or JSON) into your site. Normally you start an import from the Feeds administration UI or from the server command line with Drush.
Feeds Trigger adds a small internal HTTP API: another system can send a POST request and Drupal will run the import for you. That helps teams that want a simple, automatable trigger without giving external systems full Drupal admin access or SSH/Drush on the server.
What solution does this module provide? It bridges automation (HTTP clients, webhooks, cron elsewhere, CI) and Feeds, by exposing one protected route that delegates to Feeds’ own Drush import command, so behavior stays aligned with drush feeds:import.
Features
- One endpoint:
POST /internal/feeds-triggerwith either:feed_type— runs an import for every feed instance of that type, orfeed_id— runs an import for a singlefeeds_feedentity.
- Drush-backed imports: uses Feeds’
feeds:importcommand, so results match what you would get from the CLI. - Flexible authentication (any one succeeds):
- Drupal permission
trigger feeds imports(for trusted logged-in users), - shared secret header
X-Feeds-Trigger-Token, - same secret as query parameter
token(for simple callers that cannot set headers).
- Drupal permission
- JSON responses with per-feed outcomes for scripting and monitoring.
When and why use it: You already use Feeds and need an HTTP-triggered import from a scheduler, internal tool, or webhook, without opening the Feeds UI or granting shell access.
Example use cases: external orchestrator says “import now” after a source file updates; internal dashboard button; CI step after deploying feed configuration; lightweight integration that only supports URL and query parameters.
Post-Installation
- Install and configure Feeds as usual (feed types and at least one feed instance).
- Enable Feeds Trigger and rebuild caches (
drush cr). - No separate configuration page is required. Behavior is driven by:
- optional
$settings['feeds_trigger_token']insettings.phpfor token auth; - optional overrides:
feeds_trigger_drush_path,feeds_trigger_project_root,feeds_trigger_timeout; - permission Trigger Feeds imports for roles that should call the endpoint while logged in.
- optional
- Call
POST /internal/feeds-triggerwith exactly one offeed_typeorfeed_id(query string). Thetokenquery parameter, if used, is only for authentication—not a feed selector. - For production, prefer HTTPS, restrict
/internal/feeds-triggerat your reverse proxy or firewall when possible, and prefer the header token over the query token to reduce accidental leakage via logs or referrers.
There is no new content type, text format, or Feeds UI screen added by this module beyond the permission.
Additional Requirements
- Drupal 10 or 11.
- Feeds module (declared dependency).
- Drush available on the server (typically
vendor/bin/drushrelative to the Composer project root), because imports are executed via a subprocess. - Symfony Process (pulled in with Drupal’s dependencies) for running Drush.
Recommended modules/libraries
- Feeds — required; Feeds Trigger only starts imports for feeds you have already configured.
- Infrastructure: TLS, reverse proxy allowlists, and log or monitoring around the internal URL are recommended for operational hardening (not Drupal modules per se).
Similar projects
Alternatives include invoking drush feeds:import directly from system cron or CI (no HTTP endpoint), or building a custom REST or resource or event-driven integration that calls Feeds APIs in PHP. Feeds Trigger aims for a minimal surface: one POST route, explicit authentication options, and parity with Drush by delegating to feeds:import.
Supporting this Module
Community Documentation
- See the README.md in the project repository for installation,
curlexamples, response shapes, and troubleshooting. - Optional: add DrupalPod, video walkthroughs, or a demo site link here.
Additional notes
- Large imports may run for a long time; tune
feeds_trigger_timeoutif subprocess limits are too low. - Composer: after the project is on Drupal.org, install with
composer require drupal/feeds_triggerusing the Drupal package repository.
Project information
Maintenance fixes only
Considered feature-complete by its maintainers.- Project categories: Automation, Developer tools, Import and export
- Ecosystem: Feeds
- Created by stefanoschrs on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
