Automation Action Types

Every action a rule can take, including chat messages and signed webhooks, and how to verify a webhook came from Plenix.

The actions

ActionWhat it does
Send NotificationAn in-app notification to chosen users. Date-based rules without a recipient notify the record's owner, or your admins
Create TicketRaises a new ticket with the subject, description and priority you set
Update TicketChanges the status, priority or assignee of the triggering ticket
Update CompanySets a field on the linked client company
Send EmailSends an email to any address. Subject and body can include the record's details
Create Work OrderSends out a field-service job
Run RMM ScriptRuns a script from your library on the client's devices
Post to Slack / TeamsPosts a message to Slack, Microsoft Teams, Discord or Google Chat, optionally with a link to the record
Send WebhookPOSTs a JSON payload to your own HTTPS endpoint, signed so you can verify it

Post to Slack / Teams

Connect your chat tool first under Settings β†’ Integrations. In the action, write the message, choose the provider (Slack is the default) and whether to include a link back to the record.

Send Webhook

Enter an HTTPS URL and, optionally, a JSON payload; the event details are sent if you leave it empty. The rule won't save if the payload isn't valid JSON.

For safety, webhooks only go to public HTTPS addresses β€” never to internal or private network addresses β€” and redirects aren't followed.

Verifying a webhook

Every delivery carries an X-Plenix-Signature header: sha256= followed by the HMAC-SHA256 of the raw request body, keyed with your workspace's signing secret.

  1. On Settings β†’ Automation Rules, open Webhook signing secret (admins only) and copy the secret.
  2. In your receiver, compute the HMAC-SHA256 of the raw body with that secret and compare it with the header using a constant-time comparison. Reject the request if they differ.
const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const ok = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers['x-plenix-signature']));

Where to go next

Was this article helpful?

Automation Action Types β€” Automation Engine | Plenix Cloud Docs