What a post-save action does
A post-save action connects a module event to an external action. For example, Jhapu can email a customer after a Sale is created, notify an internal team after a Purchase is updated, or call a customer-managed SMS or WhatsApp API.
Jhapu queues the action with the saved record and delivers it after the database transaction commits. A temporary email or API failure does not undo the ERP record.
Runs only after a new record has been saved.
Runs only after changes to an existing record have been saved.
Use Amazon SES email or a secure HTTPS endpoint.
Before you begin
- You must sign in as an ERP Administrator.
- Lifecycle Actions must be included and enabled for the selected company.
- For email, the sender address must be verified in Amazon SES and the Jhapu server must have permission to send through SES.
- For an API action, obtain the HTTPS endpoint and authentication secret from the customer or service provider.
Jhapu does not manage telecom or WhatsApp template approval. Configure the provider outside Jhapu, then use an API action to send the required JSON to that provider or to the customer’s middleware.
Configure an action
- 01Select the company
Open Modules → Post-save Actions, then choose the company whose records will trigger the action.
- 02Create an integration
Open Integrations and configure either Amazon SES email or an HTTP API. Save and keep the integration Active.
- 03Create the lifecycle action
Open Actions, choose the module, After Create or After Update, action type and matching integration.
- 04Add recipients or a JSON body
For email, enter fixed recipients or record fields containing email addresses. For API, provide a valid JSON object.
- 05Add optional conditions
Limit delivery to records that match your business rule, then choose attempts, initial delay and status.
- 06Save and verify
Create or update a test record, then check Delivery history for its status, attempts, provider ID or error.
Amazon SES email
Create an Amazon SES integration with the AWS region, verified sender email, sender name and optional reply-to address. An SES configuration set is optional and can be used for delivery, bounce or complaint tracking.
An email action accepts fixed recipients and recipient fields. A recipient field is the exact module field name that contains an email address—for example, Email or ContactEmail. At least one fixed recipient or recipient field is required.
Jhapu uses the AWS permissions configured securely on the application server. Do not paste AWS access keys into the action, message or recipient fields.
HTTP API for SMS, WhatsApp or another service
The endpoint must use HTTPS. Jhapu blocks endpoints that resolve to private or reserved network addresses and does not follow redirects. The available authentication modes are HMAC SHA-256, bearer token, custom header and none.
- HMAC SHA-256: Jhapu signs the exact JSON body and sends the signature in
X-Jhapu-Signature. - Bearer token: the secret is sent in the standard Authorization header.
- Custom header: choose the provider’s header name; Jhapu sends the stored secret as its value.
- None: use only when the endpoint safely authenticates the request by another controlled method.
Every API request also includes X-Jhapu-Event-Id and X-Jhapu-Idempotency-Key. The receiving service should use the idempotency key to avoid sending the same message twice when a delivery is retried.
Use record values in messages
Placeholders can be used in an email subject, email message and API JSON string values. Jhapu replaces them when the action is delivered.
{{record.Email}}— a value from the saved module record.{{record.CustomerName}}— another record field, using its exact field name.{{context.recordId}}— the saved record ID.{{event.type}}— the lifecycle event, such as AFTER_CREATE.
Use the exact field name shown by the module definition. If a placeholder cannot be resolved, Jhapu replaces it with an empty value.
Conditions and delivery history
Conditions let an action run only for matching records. Available comparisons include equals, does not equal, list membership, numeric comparisons, contains, is empty and is not empty. When several conditions are present, the record must satisfy all of them.
Use Delivery history to confirm whether a job is queued, delivered, retrying, failed or cancelled. The history also shows the attempt count, provider message ID and the latest error. Correct the integration or action configuration before retrying with another test record.
Common problems
- Delivery is paused: the feature is enabled but its configuration is not yet marked ready. Contact Jhapu support.
- The page is read-only: Lifecycle Actions is not available for the company or subscription.
- No valid email recipient: check the fixed address and confirm that each recipient field contains a valid email address.
- SES delivery failed: verify the sender, AWS region, SES permissions and whether the SES account is still in sandbox mode.
- API delivery failed: confirm HTTPS, public DNS, authentication details, expected JSON and the provider’s response status.