Event actions
The Event Action Manager is a module that subscribes to events within the Propeller platform and executes actions with the event payload. You can execute multiple actions on the same event.
Two actions are currently supported: SEND_EMAIL and POST_TO_WEBHOOK.
SEND_EMAIL
Triggers the Template Module to render a template with the event payload and send it as email.
POST_TO_WEBHOOK
Posts the event payload to a webhook.
Supported events
| Event Name | Description | Payload |
|---|---|---|
| ORDER_CREATED | Event triggered when a new order or quote is created. | Order |
| ORDER_UPDATED | Event triggered when an existing order or quote is updated. | Order |
| ORDER_DELETED | Event triggered when an existing order or quote is deleted. | Only orderId |
| ORDER_SEND_CONFIRMATION | Event triggered for sending a regular order confirmation e-mail, used in the checkout process of a customer or contact in the front-end, as well as the 'Send order to client' button in Propeller Sales Portal. | Order |
| QUOTE_SEND | Event triggered to send a quote proposal to the contact, triggered by the 'Send to client' button in Propeller Sales Portal. | Order |
| QUOTE_SEND_REQUEST | Event triggered to send the confirmation e-mail after a quote is requested by a customer from the front-end. | Order |
| QUOTE_SEND_VALIDATION | Event triggered to send a quote to a senior account manager or sales manager for validation purposes. | Order |
| CART_PURCHASE_AUTHORIZATION_REQUEST_SEND | Event triggered to send a purchase authorization request for a cart to the authorization manager. | Cart |
| CONTACT_SEND_WELCOME_EMAIL | Event triggered to send a welcome e-mail to a new contact. | Contact |
| CUSTOMER_SEND_WELCOME_EMAIL | Event triggered to send a welcome e-mail to a new customer. | Customer |
| SEND_RESET_PASSWORD | Event triggered to send a password reset e-mail to a contact or customer. | PasswordRedirect |
| SEND_INIT_PASSWORD | Event triggered to send a initial set password e-mail to a contact or customer. | PasswordRedirect |
| CUSTOM_EVENT | Used to trigger an event with a custom payload | CustomPayload |
Event payloads
Below is an example payload for each event type.
Order
{
"order": {
"id": 1,
"userId": 14644,
"accountManagerId": null,
"cartId": "01941780-c402-79ac-bade-0e9e37eb65c1",
"channelId": 1,
"shopId": 1,
"uuid": "01941781-1cb2-7993-bb33-60ed9da34d64",
"externalId": null,
"debtorId": "ANONYMOUS",
"status": "NEW",
"type": "dropshipment",
"source": "webshop",
"email": "noreply@acme.nl",
"emailDate": null,
"remarks": null,
"extra3": null,
"extra4": null,
"currency": "EUR",
"currencyRatio": "1.00000",
"language": "NL",
"date": "2024-12-30T12:18:45.000Z",
"statusDate": "2024-12-30T12:18:45.000Z",
"postageData": {
"method": "DELIVERY",
"taxPercentage": "0.00",
"requestDate": "2024-12-30T12:18:22.000Z",
"gross": "2000.00000",
"net": "2000.00000",
"tax": 0,
"partialDeliveryAllowed": "N",
"pickUpLocationId": 0,
"overruled": "Y",
"carrier": "Mark delivery company"
},
"paymentData": {
"net": "0.00000",
"gross": "0.00000",
"tax": "0.00000",
"taxPercentage": "0.00",
"method": "ACCOUNT",
"status": "UNKNOWN",
"statusDate": null,
"overruled": "N",
"accountingId": null
},
"total": {
"gross": "2050.00000",
"net": "2050.00000",
"tax": "0.00000",
"discountValue": "0.00000",
"discountType": "N",
"taxPercentages": []
},
"items": [
{
"id": 1,
"uuid": "01941780-df79-75a3-83a5-b851ac114c0c",
"class": "product",
"productId": 1,
"parentOrderItemId": null,
"quantity": 1,
"sku": "NCABD70004",
"notes": null,
"name": "Edge 1030 FietsComputer",
"supplier": "TECHDATA",
"supplierCode": "NCABD70004",
"manufacturer": "Lavazza",
"manufacturerCode": "NCABD70004",
"eanCode": null,
"originalPrice": "55.00000",
"price": "50.00000",
"priceTotal": "50.00000",
"priceNet": "50.00000",
"priceTotalNet": "50.00000",
"customerPrice": "50.00000",
"costPrice": "7.50000",
"discount": "5.00000",
"tax": "0.00000",
"taxPercentage": "0.00000",
"taxCode": "N",
"isBonus": "N",
"minimumQuantity": 1,
"unit": 1,
"package": "STK",
"packageUnit": "",
"packageUnitQuantity": "1",
"purchaseUnit": 1,
"purchaseMinimumQuantity": 1,
"requestDate": null
}
],
"invoiceUserId": 14644,
"validUntil": null,
"companyId": null,
"lastModifiedAt": "2024-12-30T12:18:45.048Z",
"originalOrderId": 0,
"exportedAt": null,
"exportStatus": "",
"exportMessage": null,
"addresses": [
{
"firstName": "Sophie",
"middleName": "",
"lastName": "Bakker",
"gender": "F",
"company": "",
"street": "Industrieweg",
"number": "12",
"numberExtension": "A",
"postalCode": "4283 GZ",
"city": "Giessen",
"region": "Zuid-Holland",
"country": "Netherlands",
"phone": "+31 20 123 4567",
"mobile": "+31 6 1234 5678",
"email": "sophie@acme.nl",
"code": "CUST-50123",
"notes": "",
"type": "invoice",
"icp": "N"
}
]
}
}
Contact
{
"contact": {
"tenant": "acme",
"id": 54321,
"firstName": "Sophie",
"middleName": "",
"lastName": "Bakker",
"phone": "+31 20 234 5678",
"email": "sophie@acme.nl",
"iban": "NL91ABNA0417164300",
"bankAccount": "041716430",
"bic": "ABNANL2A",
"notes": "",
"debtorId": "CONT-54321",
"login": "sbakker",
"gender": "F",
"mobile": "+31 6 8765 4321",
"expires": "2024-12-31T23:59:59.999Z",
"externalId": "EXT-54321",
"dateOfBirth": "1990-03-21T00:00:00.000Z",
"mailingList": "Y",
"createdAt": "2023-02-15T09:30:00.000Z",
"lastModifiedAt": "2023-07-01T14:45:00.000Z",
"company": {
"id": 9876,
"name": "Acme Corp B.V.",
"taxNumber": "NL123456789B01",
"cocNumber": "12345678",
"debtorId": "COMP-9876",
"phone": "+31 20 987 6543",
"email": "info@acme.nl",
"notes": "",
"path": "/companies/acme-corp",
"slug": "acme-corp",
"tag": "wholesale",
"createdAt": "2022-01-01T00:00:00.000Z",
"lastModifiedAt": "2023-06-30T12:00:00.000Z",
"parentUsergroupId": 1000
},
"companies": [
{
"id": 9876,
"name": "Acme Corp B.V.",
"taxNumber": "NL123456789B01",
"cocNumber": "12345678",
"debtorId": "COMP-9876",
"phone": "+31 20 987 6543",
"email": "info@acme.nl",
"notes": "",
"path": "/companies/acme-corp",
"slug": "acme-corp",
"tag": "wholesale",
"createdAt": "2022-01-01T00:00:00.000Z",
"lastModifiedAt": "2023-06-30T12:00:00.000Z",
"parentUsergroupId": 1000
},
{
"id": 5432,
"name": "Merford Cabins B.V.",
"taxNumber": "NL987654321B02",
"cocNumber": "87654321",
"debtorId": "COMP-5432",
"phone": "+31 30 123 4567",
"email": "info@merford.nl",
"notes": "",
"path": "/companies/merford-cabins",
"slug": "merford-cabins",
"tag": "manufacturing",
"createdAt": "2021-06-15T00:00:00.000Z",
"lastModifiedAt": "2023-05-20T10:30:00.000Z",
"parentUsergroupId": 2000
}
],
"channelId": 3,
"language": "NL"
}
}
Customer
{
"customer": {
"tenant": "acme",
"id": 12345,
"debtorId": "CUST-12345",
"gender": "M",
"firstName": "Jan",
"middleName": "de",
"lastName": "Vries",
"phone": "+31 20 123 4567",
"mobile": "+31 6 9876 5432",
"email": "jan@acme.nl",
"login": "jdevries",
"iban": "NL91ABNA0417164300",
"bankAccount": "123456789",
"bic": "ABNANL2A",
"notes": "",
"primaryLanguage": "NL",
"expires": "2025-12-31T23:59:59.999Z",
"externalId": "EXT-12345",
"dateOfBirth": "1985-06-15T00:00:00.000Z",
"mailingList": "Y",
"isLoggedIn": true,
"createdAt": "2023-01-01T10:00:00.000Z",
"lastModifiedAt": "2023-06-30T15:30:00.000Z",
"parentUsergroupId": 5,
"channelId": 2,
"language": "NL"
}
}
PasswordReset
{
"passwordReset": {
"email": "jan@acme.nl",
"resetLink": "https://www.acme.nl/reset-password",
"language": "NL"
}
}
Webhook security
HMAC Signature Verification
- Signature Salt: A secret key used to generate HMAC-SHA256 signatures
- When configured, webhooks include an
X-Propeller-Signatureheader - Format:
sha256=<signature> - Allows webhook endpoints to verify the payload authenticity
Basic Authentication
- Username & Password: HTTP Basic Authentication credentials
- Both fields must be provided together
- Password is stored securely and never displayed after saving
- Adds
Authorization: Basic <credentials>header to webhook requests