apollo-webhooks-events
Facilitates real-time event handling for Apollo.io webhooks, enabling seamless integration and processing of event notifications.
Install this skill
Security score
The apollo-webhooks-events skill was audited on Feb 21, 2026 and we found 70 security issues across 4 threat categories, including 2 high-severity. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 287 | console.log(` |
Template literal with variable interpolation in command context
| 300 | url: `${process.env.APP_URL}/webhooks/apollo`, |
Webhook reference - potential data exfiltration
| 2 | name: apollo-webhooks-events |
Webhook reference - potential data exfiltration
| 4 | Implement Apollo.io webhook handling. |
Webhook reference - potential data exfiltration
| 5 | Use when receiving Apollo webhooks, processing event notifications, |
Webhook reference - potential data exfiltration
| 7 | Trigger with phrases like "apollo webhooks", "apollo events", |
Webhook reference - potential data exfiltration
| 8 | "apollo notifications", "apollo webhook handler", "apollo triggers". |
Webhook reference - potential data exfiltration
| 15 | # Apollo Webhooks Events |
Webhook reference - potential data exfiltration
| 18 | Implement webhook handlers for Apollo.io to receive real-time notifications about contact updates, sequence events, and engagement activities. |
Webhook reference - potential data exfiltration
| 20 | ## Apollo Webhook Events |
Webhook reference - potential data exfiltration
| 34 | ## Webhook Handler Implementation |
Webhook reference - potential data exfiltration
| 38 | // src/routes/webhooks/apollo.ts |
Webhook reference - potential data exfiltration
| 45 | // Webhook payload schemas |
Webhook reference - potential data exfiltration
| 86 | // Verify webhook signature |
Webhook reference - potential data exfiltration
| 99 | function verifyApolloWebhook(req: any, res: any, next: any) { |
Webhook reference - potential data exfiltration
| 101 | const webhookSecret = process.env.APOLLO_WEBHOOK_SECRET; |
Webhook reference - potential data exfiltration
| 103 | if (!webhookSecret) { |
Webhook reference - potential data exfiltration
| 104 | console.error('APOLLO_WEBHOOK_SECRET not configured'); |
Webhook reference - potential data exfiltration
| 105 | return res.status(500).json({ error: 'Webhook secret not configured' }); |
Webhook reference - potential data exfiltration
| 113 | if (!verifySignature(rawBody, signature, webhookSecret)) { |
Webhook reference - potential data exfiltration
| 120 | // Main webhook endpoint |
Webhook reference - potential data exfiltration
| 121 | router.post('/apollo', verifyApolloWebhook, async (req, res) => { |
Webhook reference - potential data exfiltration
| 138 | console.error('Webhook processing error:', error); |
Webhook reference - potential data exfiltration
| 148 | // src/services/webhooks/handlers.ts |
Webhook reference - potential data exfiltration
| 269 | ## Webhook Registration |
Webhook reference - potential data exfiltration
| 272 | // scripts/register-webhooks.ts |
Webhook reference - potential data exfiltration
| 275 | interface WebhookConfig { |
Webhook reference - potential data exfiltration
| 281 | async function registerWebhook(config: WebhookConfig) { |
Webhook reference - potential data exfiltration
| 282 | // Note: Apollo webhook registration is typically done through the UI |
Webhook reference - potential data exfiltration
| 284 | console.log('Webhook registration:', config); |
Webhook reference - potential data exfiltration
| 288 | To register webhooks in Apollo: |
Webhook reference - potential data exfiltration
| 290 | 1. Go to Apollo Settings > Integrations > Webhooks |
Webhook reference - potential data exfiltration
| 291 | 2. Click "Add Webhook" |
Webhook reference - potential data exfiltration
| 294 | 5. Copy the webhook secret and add to your environment: |
Webhook reference - potential data exfiltration
| 295 | APOLLO_WEBHOOK_SECRET=<secret> |
Webhook reference - potential data exfiltration
| 299 | const webhookConfig: WebhookConfig = { |
Webhook reference - potential data exfiltration
| 300 | url: `${process.env.APP_URL}/webhooks/apollo`, |
Webhook reference - potential data exfiltration
| 312 | secret: process.env.APOLLO_WEBHOOK_SECRET!, |
Webhook reference - potential data exfiltration
| 315 | registerWebhook(webhookConfig); |
Webhook reference - potential data exfiltration
| 318 | ## Testing Webhooks |
Webhook reference - potential data exfiltration
| 321 | // tests/webhooks/apollo.test.ts |
Webhook reference - potential data exfiltration
| 334 | describe('Apollo Webhooks', () => { |
Webhook reference - potential data exfiltration
| 335 | const secret = 'test-webhook-secret'; |
Webhook reference - potential data exfiltration
| 338 | process.env.APOLLO_WEBHOOK_SECRET = secret; |
Webhook reference - potential data exfiltration
| 343 | .post('/webhooks/apollo') |
Webhook reference - potential data exfiltration
| 351 | .post('/webhooks/apollo') |
Webhook reference - potential data exfiltration
| 374 | .post('/webhooks/apollo') |
Webhook reference - potential data exfiltration
| 396 | .post('/webhooks/apollo') |
Webhook reference - potential data exfiltration
| 414 | # Use the ngrok URL for webhook registration |
Webhook reference - potential data exfiltration
| 415 | # Example: https://abc123.ngrok.io/webhooks/apollo |
Webhook reference - potential data exfiltration
| 419 | - Webhook endpoint with signature verification |
Webhook reference - potential data exfiltration
| 422 | - Webhook registration instructions |
Webhook reference - potential data exfiltration
| 423 | - Test suite for webhook validation |
Webhook reference - potential data exfiltration
| 428 | | Invalid signature | Check webhook secret | |
Webhook reference - potential data exfiltration
| 434 | - [Apollo Webhooks Documentation](https://knowledge.apollo.io/hc/en-us/articles/4415154183053) |
Webhook reference - potential data exfiltration
| 435 | - [Webhook Security Best Practices](https://hookdeck.com/webhooks/guides/webhook-security-best-practices) |
Ngrok tunnel reference
| 405 | ## Local Testing with ngrok |
Ngrok tunnel reference
| 411 | # In another terminal, start ngrok |
Ngrok tunnel reference
| 412 | ngrok http 3000 |
Ngrok tunnel reference
| 414 | # Use the ngrok URL for webhook registration |
Ngrok tunnel reference
| 415 | # Example: https://abc123.ngrok.io/webhooks/apollo |
Ngrok tunnel reference
| 436 | - [ngrok for Local Testing](https://ngrok.com/) |
Access to .env file
| 101 | const webhookSecret = process.env.APOLLO_WEBHOOK_SECRET; |
Access to .env file
| 300 | url: `${process.env.APP_URL}/webhooks/apollo`, |
Access to .env file
| 312 | secret: process.env.APOLLO_WEBHOOK_SECRET!, |
Access to .env file
| 338 | process.env.APOLLO_WEBHOOK_SECRET = secret; |
External URL reference
| 415 | # Example: https://abc123.ngrok.io/webhooks/apollo |
External URL reference
| 434 | - [Apollo Webhooks Documentation](https://knowledge.apollo.io/hc/en-us/articles/4415154183053) |
External URL reference
| 435 | - [Webhook Security Best Practices](https://hookdeck.com/webhooks/guides/webhook-security-best-practices) |
External URL reference
| 436 | - [ngrok for Local Testing](https://ngrok.com/) |