> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.propexo.com/how-it-works/webhooks/sequencing-and-data-hydration/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.propexo.com/_mcp/server. # Sequencing & Data Hydration In some integrations, Propexo delivers data in multiple stages rather than in a single, complete payload. This process — known as **sequencing and data hydration** — ensures you receive initial information as soon as possible, followed by additional details as they are retrieved from the connected property management system (PMS). ## Why Sequencing Happens Many PMS integrations initially return only a **minimal dataset** for certain models such as residents, applicants, or leads. This might contain just an ID and a name. Propexo then makes one or more subsequent requests to retrieve the **full dataset**, which can include fields like phone numbers, email addresses, and other attributes. Because of this, a single record may trigger **multiple webhook events** — an initial one with partial data, and one or more follow-ups containing the full set of fields. ## Example Scenario 1. A new resident is added to the PMS. 2. Propexo sends a **DATA\_NEW** webhook with only the resident's ID and name. 3. Propexo retrieves additional details such as phone numbers and email addresses. 4. A **DATA\_UPDATE** webhook is sent, adding these enriched details to the record. ## Handling Sequencing in Your Implementation To ensure you receive and process complete records, consider the following approaches: * **Subscribe to DATA\_NEW only** – Suitable if the initial minimal data is enough for your use case. * **Subscribe to both DATA\_NEW and DATA\_UPDATE** – Ensures you capture both the initial creation and any additional details retrieved later. * **Use webhooks as triggers for API calls** – Many customers treat webhooks as **notifications**, then call the associated API endpoint to retrieve the most up-to-date record. Example: Subscribe to DATA\_UPDATE for the leases model. When you receive an update webhook, call /leases/:id to fetch the full lease record.