Main Header

Service Targeting

Updated on July 30, 2026

Use the services option in sp_capture() to control which integrations receive a signal. Service targeting runs before each integration’s own routing rules and respects activation, enable, and license state.

Start with Capturing Events with sp_capture() if you are new to the API. Context fields live in Event Context and Options.

Service IDs

Use these exact keys in the services array:

ServiceTargeting keyAvailability
LocallocalFree
EmailemailFree
RequestBinrequestbinFree
PostHogposthogPro
Google Analytics 4ga4Pro
MixpanelmixpanelPro
Better Stack LogsbetterstackPro
PushoverpushoverPro
WebhookswebhooksPro (Plus: one endpoint; Pro: unlimited — Free vs SignalPress Pro)
SlackslackPro
DiscorddiscordPro
Microsoft TeamsteamsPro
ZapierzapierPro
SentrysentryPro
DatadogdatadogPro
HoneycombhoneycombPro
AxiomaxiomPro
New RelicnewrelicPro
Grafana LokilokiPro
Google Sheetsgoogle-sheetsPro
Excel Onlineexcel-onlinePro

Premium keys require SignalPress Pro and a valid license. Browse cards on Integrations Overview.

Target one service

PHP

sp_capture(
	'order_completed',
	$order_data,
	[
		'source'   => 'checkout',
		'services' => [ 'posthog' ],
	]
);

Target several services

PHP

sp_capture(
	'backup_failed',
	[
		'message' => 'The nightly backup failed.',
		'level'   => 'error',
	],
	[
		'source'   => 'backup-worker',
		'services' => [ 'slack', 'email', 'pushover' ],
	]
);

Broadcast and intentional no-ops

  • Omit services — offer the signal to every active, enabled, configured integration
  • List services — only listed destinations are considered; all others are skipped
  • Empty array — deliver nowhere (useful for dry runs)

A listed service must still be active, enabled, configured, and licensed (when premium) to receive the signal. Verify setup with Your First Connection Test.

The Test Shortcode always broadcasts — it cannot pass a services list.

Filter-based targeting (Tier 1+)

The signalpress/target_services filter can adjust normalized routing before dispatch. The signalpress/should_deliver_to_service filter can suppress individual destinations. See Hooks and Filters.

Custom integrations registered on Tier 2 use their own service IDs — Extending SignalPress.