Skip to content

Conversation

@marc-on-github
Copy link
Contributor

@marc-on-github marc-on-github commented Dec 22, 2025


When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)

If this is your first time submitting to GitHub and you need some help, please sign up for this session.

  • I attest that the connector doesn't exist on the Power Platform today. I've verified by checking the pull requests in GitHub and by searching for the connector on the platform or in the documentation.
  • I attest that the connector works and I verified by deploying and testing all the operations.
  • I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
  • I attest that I have added response schemas to my actions, unless the response schema is dynamic.
  • I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
  • If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

Summary

This PR updates the absentify connector to version 2.0 with improved webhook payload format and better descriptions.

Breaking Change Notice

This update introduces a new webhook payload format (v2). The connector now sends payload_version: "v2" when registering webhooks.

Backward Compatibility

  • Existing flows will continue to work - they were registered without payload_version and will receive the v1 payload format
  • New flows will use v2 format - the connector now sends payload_version: "v2" which triggers the new payload structure

Payload Format Changes

v1 (existing flows):

{
  "id": "...",
  "start": "2025-01-15",
  "details": {
    "status": "APPROVED",
    "requester_member": { ... }
  }
}

v2 (new flows):

{
  "event_type": "request_created",
  "body": {
    "id": "...",
    "start": "2025-01-15",
    "status": "APPROVED",
    "requester_member": { ... }
  }
}

Changes

  • Updated to v2 webhook payload format with event_type and body wrapper
  • Added payload_version parameter to webhook registration (internal, auto-set to "v2")
  • Enhanced connector description for better discoverability in the Power Platform
  • Improved trigger summaries: Changed from generic "Request created" to user-friendly "When a leave request is created"
  • Added detailed operation descriptions with use-case examples
  • Fixed security definition naming: Renamed from undefined to oauth2_auth
  • Added x-ms-visibility: important for triggers to ensure proper visibility
  • Added proper response codes (200, 201) for webhook subscriptions
  • Fixed validation issues:
    • Added consumes/produces with application/json
    • Made body parameter required: true for webhook operations
  • Updated brand color to #6465a7
  • Added comprehensive response schemas for v2 payload

Validation

✅ Successfully validated with paconn validate command

@marc-on-github marc-on-github requested a review from a team as a code owner December 22, 2025 16:26
- Enhanced connector description for better discoverability
- Improved trigger summaries: "When a leave request is created/status changes"
- Added detailed operation descriptions with use-case examples
- Fixed security definition naming (undefined -> oauth2_auth)
- Added x-ms-visibility: important for triggers
- Added proper response codes (200, 201) for webhook subscriptions
- Fixed validation issues: added consumes/produces, required body parameter
- Added tags for better organization

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@marc-on-github marc-on-github force-pushed the absentify-improve-descriptions branch from f5b5392 to bec5417 Compare December 22, 2025 16:46
marc-on-github and others added 3 commits December 22, 2025 17:59
- Add new v2 triggers (TriggerRequestCreatedV2, TriggerRequestStatusChangedV2)
- New v2 endpoints: /webhooks/manage_ms_webhook_v2/request_created and request_status_changed
- v2 payload uses body wrapper with event_type field
- Mark v1 triggers as deprecated (visibility: advanced)
- Keep v1 triggers for backward compatibility
- Update version to 2.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- v2 triggers use /webhooks/manage_ms_webhook/... with payload_version: v2
- v1 deprecated triggers use /webhooks/manage_ms_webhook/..._v1 paths
- Avoids duplicate path conflicts in swagger

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Remove _v1 endpoint paths (not implemented in API)
- Keep only v2 triggers with payload_version parameter
- Existing flows continue working (API defaults to v1 without payload_version)
- New flows will use v2 payload format

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@marc-on-github marc-on-github changed the title absentify: Improve connector descriptions and fix validation issues absentify: Update to v2 webhook payload format Dec 22, 2025
@vmanoharas
Copy link
Contributor

Hi @marc-on-github,

Please confirm that the below swagger validation errors will not break the existing flows so we can approve this PR.

##[error]The operation has been deleted. This change breaks existing flows. ValuePath: operation/TriggerRequestCreated Source: NewSwagger
##[error]The operation has been deleted. This change breaks existing flows. ValuePath: operation/TriggerRequestStatusChanged Source: NewSwagger

Add comprehensive API operations for the absentify Plus plan:

Members (11 operations):
- Get all members, Get/Update/Delete member by ID
- Get member by Microsoft ID, email, or custom ID
- Update member approvers, allowance, and schedule

Departments (4 operations):
- Get all, Create, Update, Delete departments

Leave Types (4 operations):
- Get all, Create, Update, Delete leave types

Requests (5 operations):
- Get all, Create, Get/Update/Delete by ID

Public Holidays (5 operations):
- Get all calendars, Create, Get/Update/Delete by ID

Workspace & Absences (2 operations):
- Get workspace settings, Get absences by date range

All Plus plan operations are marked with [Plus] prefix in summary
and "Requires absentify Plus plan." in description.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants