From podium-pack
Handles Podium webhook events for messages, reviews, and payments using Express.js with event routing, idempotency, and registration instructions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/podium-pack:podium-webhooks-eventsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Handle Podium webhook events for messages, reviews, and payments with event routing and idempotent processing.
Handle Podium webhook events for messages, reviews, and payments with event routing and idempotent processing.
| Event | Description |
|---|---|
message.received | Inbound customer message |
message.sent | Outbound message delivered |
message.failed | Message delivery failed |
review.created | New review posted |
payment.completed | Invoice payment received |
import express from 'express';
const app = express();
app.post('/webhooks/podium', express.json(), async (req, res) => {
const { type, data } = req.body;
const handlers: Record<string, (data: any) => Promise<void>> = {
'message.received': async (d) => {
console.log(`Message from ${d.attributes['contact-phone']}: ${d.attributes.body}`);
},
'message.sent': async (d) => {
console.log(`Message delivered: ${d.id}`);
},
'review.created': async (d) => {
console.log(`New review: ${d.attributes.rating}/5`);
},
'payment.completed': async (d) => {
console.log(`Payment received: $${d.attributes.amount / 100}`);
},
};
const handler = handlers[type];
if (handler) await handler(data);
res.status(200).json({ received: true });
});
await podium.post('/webhooks', {
data: {
attributes: {
url: 'https://your-app.com/webhooks/podium',
events: ['message.received', 'message.sent', 'review.created', 'payment.completed'],
},
},
});
| Issue | Cause | Solution |
|---|---|---|
| No events received | Wrong URL | Verify HTTPS URL in webhook config |
| Duplicate events | Retry delivery | Implement idempotency with event IDs |
| Handler timeout | Slow processing | Offload to background queue |
For error diagnosis, see podium-common-errors.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin podium-packBuilds Podium two-way messaging workflow: Express webhook for inbound messages, API registration, reply sending. For SaaS integrations handling conversations.
Handles Instantly.ai v2 webhook events for email campaigns (sent, opened, clicked, replied, bounced) and lead updates. Use for webhook endpoints or CRM sync pipelines.
Designs reliable webhook systems using Stripe patterns: resource.action event naming, JSON envelope payloads, HMAC-SHA256 signing, exponential backoff retries, deduplication, and endpoint implementation.