appfolio-core-workflow-a

Featured

Build property management dashboard with AppFolio API data. Trigger: "appfolio property dashboard".

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 — Property & Tenant Management ## Overview Primary workflow for AppFolio property management integration. Covers the full property lifecycle: creating and updating property records, managing tenant profiles and lease agreements, and querying occupancy data. Uses the AppFolio Stack API with OAuth 2.0 client credentials for server-to-server access. All endpoints return JSON and support pagination via `cursor` parameters for large portfolios. ## Instructions ### Step 1: Authenticate and Initialize Client ```typescript const token = await fetch('https://api.appfolio.com/oauth/token', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ grant_type: 'client_credentials', client_id: process.env.APPFOLIO_CLIENT_ID!, client_secret: process.env.APPFOLIO_CLIENT_SECRET!, scope: 'properties tenants leases', }), }).then(r => r.json()); const headers = { Authorization: `Bearer ${token.access_token}`, 'Content-Type': 'application/json' }; ``` ### Step 2: Create or Update a Property ```typescript const property = await fetch('https://api.appfolio.com/v1/properties', { method: 'POST', headers, body: JSON.stringify({ name: 'Sunrise Apartments', address: { street: '100 Main St', city: 'Austin', state: 'TX', zip: '78701' }, type: 'residential', units: [ { number: '101', bedrooms: 2, bathrooms: 1, rent: 1450 }, { number: '102', bedrooms: 1, bathrooms: 1, rent: 1100 }...

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