appfolio-webhooks-events

Featured

Handle AppFolio webhook events for property management notifications. Trigger: "appfolio webhook".

AI & Automation 2,266 stars 315 forks Updated today MIT

Install

View on GitHub

Quality Score: 99/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# AppFolio Webhooks & Events ## Overview AppFolio Stack delivers real-time webhook notifications for property management lifecycle events including tenant onboarding, lease execution, rent payments, and maintenance workflows. Use these webhooks to sync AppFolio data with your CRM, accounting system, or custom property management dashboards without polling the API. ## Webhook Registration ```typescript const response = await fetch("https://api.appfolio.com/v1/webhooks", { method: "POST", headers: { "Authorization": `Bearer ${process.env.APPFOLIO_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ url: "https://yourapp.com/webhooks/appfolio", events: ["tenant.created", "work_order.updated", "payment.received", "lease.signed"], secret: process.env.APPFOLIO_WEBHOOK_SECRET, }), }); ``` ## Signature Verification ```typescript import crypto from "crypto"; import { Request, Response, NextFunction } from "express"; function verifyAppFolioSignature(req: Request, res: Response, next: NextFunction) { const signature = req.headers["x-appfolio-signature"] as string; const expected = crypto .createHmac("sha256", process.env.APPFOLIO_WEBHOOK_SECRET!) .update(req.body) .digest("hex"); if (!crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) { return res.status(401).json({ error: "Invalid signature" }); } next(); } ``` ## Event Handler ```typescript import express from "express"; const app = ex...

Details

Author
jeremylongshore
Repository
jeremylongshore/claude-code-plugins-plus-skills
Created
7 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category