Skip to content

Commit

Permalink
Feathery Forms certified connector (#3160)
Browse files Browse the repository at this point in the history
  • Loading branch information
bo-dun-1 authored Jan 1, 2024
1 parent a61bbf0 commit a5b4d0d
Show file tree
Hide file tree
Showing 3 changed files with 260 additions and 0 deletions.
36 changes: 36 additions & 0 deletions certified-connectors/Feathery Forms/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Feathery Forms Connector
Feathery is the most powerful form and workflow automation platform. Build pixel-perfect forms, set up powerful logic, and connect to hundreds of different systems.

## Publisher: Feathery

## Prerequisites
You will need the following to proceed:
* A [Feathery account](https://feathery.io)
* A Microsoft Power Apps or Power Automate plan

## Supported Operations
The connector supports the following triggers.

### FormCompletion
When a Feathery form submission is completed

### DataReceived
When any data is received from a Feathery form submission (e.g. a partial submission)

## Getting Started
[Sign up](https://app.feathery.io) for a Feathery account. Then,
follow our [quickstart guide](https://docs.feathery.io/platform/quickstart) to get started.

## Known Issues and Limitations
None

## Frequently Asked Questions
### Why isn't my submission triggering `FormCompletion`?
Once an existing submission triggers the `FormCompletion` event, it won't be able to trigger it again.

### When does the `DataReceived` event trigger?
Anytime a submission receives user data -- when a step is submitted, integration is connected, data is set programmatically, etc.

## Deployment Instructions
1. Authorize your connector with your Feathery API key. This can be found in the account settings of your Feathery dashboard.
2. Specify the name of the form that you want to track events for. You may have multiple connectors track the same form.
171 changes: 171 additions & 0 deletions certified-connectors/Feathery Forms/apiDefinition.swagger.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
{
"swagger": "2.0",
"info": {
"title": "Feathery Forms",
"description": "Feathery is the most powerful form and workflow automation platform. Build pixel-perfect forms, set up powerful logic, and connect to hundreds of different systems.",
"version": "1.0",
"contact": {
"name": "Feathery Support",
"url": "https://community.feathery.io",
"email": "[email protected]"
}
},
"host": "api.feathery.io",
"basePath": "/api",
"schemes": [
"https"
],
"consumes": [],
"produces": [],
"paths": {
"/trigger/power-automate/poll/": {},
"/trigger/power-automate/poll/form_completion/": {
"get": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "id"
},
"Submission Completed At": {
"type": "string",
"description": "Submission Completed At"
},
"Submission Updated At": {
"type": "string",
"description": "Submission Updated At"
}
}
},
"description": "results"
}
}
}
}
},
"summary": "When a form submission is completed",
"description": "This operation is triggered when a form submission is completed.",
"operationId": "FormCompletion",
"x-ms-visibility": "important",
"x-ms-trigger": "batch",
"x-ms-trigger-metadata": {
"mode": "polling",
"kind": "query"
},
"parameters": [
{
"name": "form_key",
"in": "query",
"required": true,
"type": "string",
"description": "The name of the form",
"x-ms-visibility": "important",
"x-ms-summary": "Form Name"
},
{
"name": "last_requested_at",
"in": "query",
"required": false,
"type": "string",
"description": "Last trigger poll time",
"x-ms-visibility": "internal",
"x-ms-summary": "Last Request Time"
}
],
"x-ms-trigger-hint": "Submit a form to trigger"
}
},
"/trigger/power-automate/poll/data_received/": {
"get": {
"responses": {
"200": {
"description": "default",
"schema": {
"type": "object",
"properties": {
"requested_at": {
"type": "string",
"description": "requested_at"
},
"results": {
"type": "array",
"items": {},
"description": "results"
}
}
}
}
},
"summary": "Whenever any data is received from a submission",
"description": "This operation is triggered whenever any data is received from a submission.",
"operationId": "DataReceived",
"x-ms-visibility": "important",
"x-ms-trigger": "batch",
"x-ms-trigger-metadata": {
"mode": "polling",
"kind": "query"
},
"parameters": [
{
"name": "form_key",
"in": "query",
"required": true,
"type": "string",
"description": "The name of the form",
"x-ms-visibility": "important",
"x-ms-summary": "Form Name"
},
{
"name": "last_requested_at",
"in": "query",
"required": false,
"type": "string",
"description": "Last trigger poll time",
"x-ms-visibility": "internal",
"x-ms-summary": "Last Request Time"
}
],
"x-ms-trigger-hint": "Submit a form to trigger"
}
}
},
"x-ms-connector-metadata": [
{
"propertyName": "Website",
"propertyValue": "https://feathery.io"
},
{
"propertyName": "Privacy policy",
"propertyValue": "https://feathery.io/privacy-policy"
},
{
"propertyName": "Categories",
"propertyValue": "Productivity;Collaboration"
}
],
"definitions": {},
"parameters": {},
"responses": {},
"securityDefinitions": {
"API Key": {
"type": "apiKey",
"in": "header",
"name": "Authorization"
}
},
"security": [
{
"API Key": []
}
],
"tags": []
}
53 changes: 53 additions & 0 deletions certified-connectors/Feathery Forms/apiProperties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"properties": {
"connectionParameters": {
"api_key": {
"type": "securestring",
"uiDefinition": {
"displayName": "Feathery API Key",
"description": "The Feathery API Key for this api",
"tooltip": "Provide your Feathery API Key",
"constraints": {
"tabIndex": 2,
"clearText": false,
"required": "true"
}
}
}
},
"iconBrandColor": "#e2626e",
"capabilities": [],
"policyTemplateInstances": [
{
"templateId": "pollingtrigger",
"title": "PollingTriggerPolicy_e518640f-8b67-8925-a703-ba8e322444b0",
"type": "PollingTrigger",
"parameters": {
"x-ms-apimTemplateParameter.triggerConfig": {
"last_requested_at": "@{triggerBody().requested_at}"
},
"x-ms-apimTemplateParameter.triggerDataPath": "@triggerBody().results",
"x-ms-apimTemplate-operationName": [
"FormCompletion"
]
}
},
{
"templateId": "pollingtrigger",
"title": "PollingTriggerPolicy_638daa9d-3565-be69-2744-b5224b6675f2",
"type": "PollingTrigger",
"parameters": {
"x-ms-apimTemplateParameter.triggerConfig": {
"last_requested_at": "@{triggerBody().requested_at}"
},
"x-ms-apimTemplateParameter.triggerDataPath": "@triggerBody().results",
"x-ms-apimTemplate-operationName": [
"DataReceived"
]
}
}
],
"publisher": "Peter Dun"
}
}

0 comments on commit a5b4d0d

Please sign in to comment.