From 41a480e0358e6020fe591072b9d7337fb7b70a1b Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Wed, 28 Feb 2024 09:10:49 -0500 Subject: [PATCH] Woodpecker (Independent Publisher) (#2813) * Revert "Merge branch 'microsoft:dev' into dev" This reverts commit 096a7c31993f909c3ee2ccacb4d6a206a1a2b2a3, reversing changes made to cb0948670feda35e9fc2a43241de68bc50e06812. * Revert "Merge branch 'microsoft:dev' into dev" This reverts commit cb0948670feda35e9fc2a43241de68bc50e06812, reversing changes made to dc26e8a0268f26bc2f38bf3a66e8c90e98df9404. * Revert "Revert "Merge branch 'microsoft:dev' into dev"" This reverts commit 01764d0a6d9e3afa849a6a4159d751aee6108580. * Revert "Revert "Merge branch 'microsoft:dev' into dev"" This reverts commit a3f086ef0f4e8b47ec14e9287ec7ebc29a09ea33. * Add files via upload * Revert "Add files via upload" This reverts commit eeff7b7a02a5c65406413e7c848ebc718c30183e. * Add files via upload * Delete independent-publisher-connectors/FileIO directory * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Revert "Add files via upload" This reverts commit 1d855069580b1ee4670c7c8e3b2edec4e0d63cd5. * Add files via upload * Update apiDefinition.swagger.json * Update apiProperties.json --- .../Woodpecker/apiDefinition.swagger.json | 1713 +++++++++++++++++ .../Woodpecker/apiProperties.json | 36 + .../Woodpecker/readme.md | 25 + 3 files changed, 1774 insertions(+) create mode 100644 independent-publisher-connectors/Woodpecker/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Woodpecker/apiProperties.json create mode 100644 independent-publisher-connectors/Woodpecker/readme.md diff --git a/independent-publisher-connectors/Woodpecker/apiDefinition.swagger.json b/independent-publisher-connectors/Woodpecker/apiDefinition.swagger.json new file mode 100644 index 000000000..7896c1477 --- /dev/null +++ b/independent-publisher-connectors/Woodpecker/apiDefinition.swagger.json @@ -0,0 +1,1713 @@ +{ + "swagger": "2.0", + "info": { + "title": "Woodpecker", + "description": "Woodpecker products are tailored to your cold emailing and lead generation needs. We are helping leaders improve the workflow within the team and shape their campaign results.", + "version": "1.0.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "api.woodpecker.co", + "basePath": "/rest/v1/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/prospects": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The identifier.", + "title": "ID" + }, + "email": { + "type": "string", + "description": "The email address.", + "title": "Email" + }, + "first_name": { + "type": "string", + "description": "The first name.", + "title": "First Name" + }, + "last_name": { + "type": "string", + "description": "The last name.", + "title": "Last Name" + }, + "company": { + "type": "string", + "description": "The company.", + "title": "Company" + }, + "organization_id": { + "type": "integer", + "format": "int32", + "description": "The organization identifier.", + "title": "Organization ID" + }, + "industry": { + "type": "string", + "description": "The industry.", + "title": "Industry" + }, + "website": { + "type": "string", + "description": "The website.", + "title": "Website" + }, + "linkedin_url": { + "type": "string", + "description": "The LinkedIn URL address.", + "title": "LinkedIn URL" + }, + "tags": { + "type": "string", + "description": "The tags.", + "title": "Tags" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "phone": { + "type": "string", + "description": "The phone number.", + "title": "Phone" + }, + "address": { + "type": "string", + "description": "The address.", + "title": "Address" + }, + "city": { + "type": "string", + "description": "The city.", + "title": "City" + }, + "state": { + "type": "string", + "description": "The state.", + "title": "State" + }, + "country": { + "type": "string", + "description": "The country.", + "title": "Country" + }, + "last_contacted": { + "type": "string", + "description": "When last contacted.", + "title": "Last Contacted" + }, + "last_replied": { + "type": "string", + "description": "When last replied.", + "title": "Last Replied" + }, + "updated": { + "type": "string", + "description": "When updated.", + "title": "Updated" + }, + "encrypted": { + "type": "boolean", + "description": "Whether encrypted.", + "title": "Encrypted" + }, + "snipet1": { + "type": "string", + "description": "The snipet 1.", + "title": "Snipet 1" + }, + "snipet2": { + "type": "string", + "description": "The snipet 2.", + "title": "Snipet 2" + }, + "snipet3": { + "type": "string", + "description": "The snipet 3.", + "title": "Snipet 3" + }, + "snipet4": { + "type": "string", + "description": "The snipet 4.", + "title": "Snipet 4" + }, + "snippet1": { + "type": "string", + "description": "The snippet 1.", + "title": "Snippet 1" + }, + "snippet2": { + "type": "string", + "description": "The snippet 2.", + "title": "Snippet 2" + }, + "snippet3": { + "type": "string", + "description": "The snippet 3.", + "title": "Snippet 3" + }, + "snippet4": { + "type": "string", + "description": "The snippet 4.", + "title": "Snippet 4" + }, + "snippet5": { + "type": "string", + "description": "The snippet 5.", + "title": "Snippet 5" + }, + "snippet6": { + "type": "string", + "description": "The snippet 6.", + "title": "Snippet 6" + }, + "snippet7": { + "type": "string", + "description": "The snippet 7.", + "title": "Snippet 7" + }, + "snippet8": { + "type": "string", + "description": "The snippet 8.", + "title": "Snippet 8" + }, + "snipper9": { + "type": "string", + "description": "The snippet 9.", + "title": "Snippet 9" + }, + "snippet10": { + "type": "string", + "description": "The snippet 10.", + "title": "Snippet 10" + }, + "snippet11": { + "type": "string", + "description": "The snippet 11.", + "title": "Snippet 11" + }, + "snippet12": { + "type": "string", + "description": "The snippet 12.", + "title": "Snippet 12" + }, + "snippet13": { + "type": "string", + "description": "The snippet 13.", + "title": "Snippet 13" + }, + "snippet14": { + "type": "string", + "description": "The snippet 14.", + "title": "Snippet 14" + }, + "snippet15": { + "type": "string", + "description": "The snippet 15.", + "title": "Snippet 15" + }, + "status": { + "type": "string", + "description": "The status.", + "title": "Status" + }, + "campaigns_details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "campaign_id": { + "type": "integer", + "format": "int32", + "description": "The campaign identifier.", + "title": "Campaign ID" + }, + "campaign_name": { + "type": "string", + "description": "The campaign name.", + "title": "Campaign Name" + }, + "campaign_status": { + "type": "string", + "description": "The campaign status.", + "title": "Campaign Status" + }, + "campaign_prospect_status": { + "type": "string", + "description": "The campaign prospect status.", + "title": "Campaign Prospect Status" + }, + "interested": { + "type": "string", + "description": "The interested.", + "title": "Interested" + }, + "campaign_email": { + "type": "string", + "description": "The campaign email address.", + "title": "Campaign Email" + } + } + }, + "title": "Campaigns Details" + } + } + } + } + } + }, + "summary": "Get prospects", + "description": "Retrieve a list of all prospects added to your Woodpecker account.", + "operationId": "ProspectsGet", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "The search query.", + "required": false, + "type": "string" + }, + { + "name": "activity", + "in": "query", + "x-ms-summary": "Activity", + "description": "The activity.", + "required": false, + "type": "string" + }, + { + "name": "campaign_id", + "in": "query", + "x-ms-summary": "Campaign ID", + "description": "The campaign identifier.", + "required": false, + "type": "string" + }, + { + "name": "campaigns_detail", + "in": "query", + "x-ms-summary": "Campaign Details", + "description": "Whether to include campaign details.", + "required": false, + "type": "boolean" + }, + { + "name": "sort", + "in": "query", + "x-ms-summary": "Sort", + "description": "The sort by.", + "required": false, + "type": "string", + "enum": [ + "+id", + "+email", + "+first_name", + "+last_name", + "+company", + "+organization_id", + "+industry", + "+website", + "+linkedin_url", + "+tags", + "+title", + "+phone", + "+address", + "+city", + "+state", + "+country", + "+last_contacted", + "+last_replied", + "+updated", + "+status", + "-id", + "-email", + "-first_name", + "-last_name", + "-company", + "-organization_id", + "-industry", + "-website", + "-linkedin_url", + "-tags", + "-title", + "-phone", + "-address", + "-city", + "-state", + "-country", + "-last_contacted", + "-last_replied", + "-updated", + "-status" + ], + "x-ms-enum-values": [ + { + "displayName": "ID", + "value": "+id" + }, + { + "displayName": "Email", + "value": "+email" + }, + { + "displayName": "First Name", + "value": "+first_name" + }, + { + "displayName": "Last Name", + "value": "+last_name" + }, + { + "displayName": "Company", + "value": "+company" + }, + { + "displayName": "Organization ID", + "value": "+organization_id" + }, + { + "displayName": "Industry", + "value": "+industry" + }, + { + "displayName": "Website", + "value": "+website" + }, + { + "displayName": "LinkedIn URL", + "value": "+linkedin_url" + }, + { + "displayName": "Tags", + "value": "+tags" + }, + { + "displayName": "Title", + "value": "+title" + }, + { + "displayName": "Phone", + "value": "+phone" + }, + { + "displayName": "Address", + "value": "+address" + }, + { + "displayName": "City", + "value": "+city" + }, + { + "displayName": "State", + "value": "+state" + }, + { + "displayName": "Country", + "value": "+country" + }, + { + "displayName": "Last Contacted", + "value": "+last_contacted" + }, + { + "displayName": "Last Replied", + "value": "+last_replied" + }, + { + "displayName": "Updated", + "value": "+updated" + }, + { + "displayName": "Status", + "value": "+status" + }, + { + "displayName": "ID Descending", + "value": "-id" + }, + { + "displayName": "Email Descending", + "value": "-email" + }, + { + "displayName": "First Name Descending", + "value": "-first_name" + }, + { + "displayName": "Last Name Descending", + "value": "-last_name" + }, + { + "displayName": "Company Descending", + "value": "-company" + }, + { + "displayName": "Organization ID Descending", + "value": "-organization_id" + }, + { + "displayName": "Industry Descending", + "value": "-industry" + }, + { + "displayName": "Website Descending", + "value": "-website" + }, + { + "displayName": "LinkedIn URL Descending", + "value": "-linkedin_url" + }, + { + "displayName": "Tags Descending", + "value": "-tags" + }, + { + "displayName": "Title Descending", + "value": "-title" + }, + { + "displayName": "Phone Descending", + "value": "-phone" + }, + { + "displayName": "Address Descending", + "value": "-address" + }, + { + "displayName": "City Descending", + "value": "-city" + }, + { + "displayName": "State Descending", + "value": "-state" + }, + { + "displayName": "Country Descending", + "value": "-country" + }, + { + "displayName": "Last Contacted Descending", + "value": "-last_contacted" + }, + { + "displayName": "Last Replied Descending", + "value": "-last_replied" + }, + { + "displayName": "Updated Descending", + "value": "-updated" + }, + { + "displayName": "Status Descending", + "value": "-status" + } + ] + }, + { + "name": "status", + "in": "query", + "x-ms-summary": "Status", + "description": "The status.", + "required": false, + "type": "string", + "enum": [ + "ACTIVE", + "BLACKLIST", + "BOUNCED", + "INVALID", + "REPLIED" + ] + }, + { + "name": "per_page", + "in": "query", + "x-ms-summary": "Per Page", + "description": "The number per page.", + "required": false, + "type": "integer", + "default": 100 + }, + { + "name": "page", + "in": "query", + "x-ms-summary": "Page", + "description": "The page number.", + "required": false, + "type": "integer" + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "string" + } + } + }, + "summary": "Delete prospects", + "description": "Deletes one or more prospects from a specific campaign or entire database.", + "operationId": "ProspectsDelete", + "parameters": [ + { + "name": "id", + "in": "query", + "x-ms-summary": "ID", + "description": "The identifier.", + "required": false, + "type": "integer" + }, + { + "name": "campaigns_id", + "in": "query", + "x-ms-summary": "Campaign ID", + "description": "The campaign identifier.", + "required": false, + "type": "integer" + } + ] + } + }, + "/add_prospects_list": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "prospects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The email address.", + "title": "Email" + } + } + }, + "title": "Prospects" + }, + "status": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status.", + "title": "Status" + }, + "code": { + "type": "string", + "description": "The code.", + "title": "Code" + }, + "msg": { + "type": "string", + "description": "The message.", + "title": "Message" + } + }, + "title": "Status" + } + } + } + } + }, + "summary": "Add prospects to list", + "description": "Adds one or more prospect to the global prospects list.", + "operationId": "ProspectsPost", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "update": { + "type": "string", + "description": "Whether to update.", + "title": "Update", + "enum": [ + "true", + "false" + ] + }, + "force": { + "type": "string", + "description": "Whether to force.", + "title": "Force", + "enum": [ + "true", + "false" + ] + }, + "prospects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + }, + "email": { + "type": "string", + "description": "The email address.", + "title": "Email" + }, + "first_name": { + "type": "string", + "description": "The first name.", + "title": "First Name" + }, + "last_name": { + "type": "string", + "description": "The last name.", + "title": "Last Name" + }, + "company": { + "type": "string", + "description": "The company.", + "title": "Company" + }, + "organization_id": { + "type": "integer", + "format": "int32", + "description": "The organization identifier.", + "title": "Organization ID" + }, + "industry": { + "type": "string", + "description": "The industry.", + "title": "Industry" + }, + "website": { + "type": "string", + "description": "The website.", + "title": "Website" + }, + "linkedin_url": { + "type": "string", + "description": "The LinkedIn URL address.", + "title": "LinkedIn URL" + }, + "tags": { + "type": "string", + "description": "The tags.", + "title": "Tags" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "phone": { + "type": "string", + "description": "The phone number.", + "title": "Phone" + }, + "address": { + "type": "string", + "description": "The address.", + "title": "Address" + }, + "city": { + "type": "string", + "description": "The city.", + "title": "City" + }, + "state": { + "type": "string", + "description": "The state.", + "title": "State" + }, + "country": { + "type": "string", + "description": "The country.", + "title": "Country" + }, + "snippet1": { + "type": "string", + "description": "The snippet 1.", + "title": "Snippet 1" + }, + "snippet2": { + "type": "string", + "description": "The snippet 2.", + "title": "Snippet 2" + }, + "snippet3": { + "type": "string", + "description": "The snippet 3.", + "title": "Snippet 3" + }, + "snippet4": { + "type": "string", + "description": "The snippet 4.", + "title": "Snippet 4" + }, + "snippet5": { + "type": "string", + "description": "The snippet 5.", + "title": "Snippet 5" + }, + "snippet6": { + "type": "string", + "description": "The snippet 6.", + "title": "Snippet 6" + }, + "snippet7": { + "type": "string", + "description": "The snippet 7.", + "title": "Snippet 7" + }, + "snippet8": { + "type": "string", + "description": "The snippet 8.", + "title": "Snippet 8" + }, + "snippet9": { + "type": "string", + "description": "The snippet 9.", + "title": "Snippet 9" + }, + "snippet10": { + "type": "string", + "description": "The snippet 10.", + "title": "Snippet 10" + }, + "snippet11": { + "type": "string", + "description": "The snippet 11.", + "title": "Snippet 11" + }, + "snippet12": { + "type": "string", + "description": "The snippet 12.", + "title": "Snippet 12" + }, + "snippet13": { + "type": "string", + "description": "The snippet 13.", + "title": "Snippet 13" + }, + "snippet14": { + "type": "string", + "description": "The snippet 14.", + "title": "Snippet 14" + }, + "snippet15": { + "type": "string", + "description": "The snippet 15.", + "title": "Snippet 15" + } + } + }, + "title": "Prospects" + } + } + } + } + ] + } + }, + "/add_prospects_campaign": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "prospects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The email address.", + "title": "Email" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "The identifier.", + "title": "ID" + } + } + }, + "title": "Prospects" + }, + "status": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status.", + "title": "Status" + }, + "code": { + "type": "string", + "description": "The code.", + "title": "Code" + }, + "msg": { + "type": "string", + "description": "The message.", + "title": "Message" + } + }, + "title": "Status" + } + } + } + } + }, + "summary": "Add prospects to campaign", + "description": "Add one or more prospects to a specific campaign", + "operationId": "ProspectsCampaignPost", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "campaign": { + "type": "object", + "properties": { + "campaign_id": { + "type": "integer", + "format": "int32", + "description": "The campaign identifier.", + "title": "Campaign ID" + } + }, + "title": "Campaign" + }, + "update": { + "type": "string", + "description": "Whether to update.", + "title": "Update", + "enum": [ + "true", + "false" + ] + }, + "force": { + "type": "string", + "description": "Whether to force.", + "title": "Force", + "enum": [ + "true", + "false" + ] + }, + "prospects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + }, + "email": { + "type": "string", + "description": "The email address.", + "title": "Email" + }, + "first_name": { + "type": "string", + "description": "The first name.", + "title": "First Name" + }, + "last_name": { + "type": "string", + "description": "The last name.", + "title": "Last Name" + }, + "company": { + "type": "string", + "description": "The company.", + "title": "Company" + }, + "organization_id": { + "type": "integer", + "format": "int32", + "description": "The organization identifier.", + "title": "Organization ID" + }, + "industry": { + "type": "string", + "description": "The industry.", + "title": "Industry" + }, + "website": { + "type": "string", + "description": "The website.", + "title": "Website" + }, + "linkedin_url": { + "type": "string", + "description": "The LinkedIn URL address.", + "title": "LinkedIn URL" + }, + "tags": { + "type": "string", + "description": "The tags.", + "title": "Tags" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "phone": { + "type": "string", + "description": "The phone number.", + "title": "Phone" + }, + "address": { + "type": "string", + "description": "The address.", + "title": "Address" + }, + "city": { + "type": "string", + "description": "The city.", + "title": "City" + }, + "state": { + "type": "string", + "description": "The state.", + "title": "State" + }, + "country": { + "type": "string", + "description": "The country.", + "title": "Country" + }, + "snippet1": { + "type": "string", + "description": "The snippet 1.", + "title": "Snippet 1" + }, + "snippet2": { + "type": "string", + "description": "The snippet 2.", + "title": "Snippet 2" + }, + "snippet3": { + "type": "string", + "description": "The snippet 3.", + "title": "Snippet 3" + }, + "snippet4": { + "type": "string", + "description": "The snippet 4.", + "title": "Snippet 4" + }, + "snippet5": { + "type": "string", + "description": "The snippet 5.", + "title": "Snippet 5" + }, + "snippet6": { + "type": "string", + "description": "The snippet 6.", + "title": "Snippet 6" + }, + "snippet7": { + "type": "string", + "description": "The snippet 7.", + "title": "Snippet 7" + }, + "snippet8": { + "type": "string", + "description": "The snippet 8.", + "title": "Snippet 8" + }, + "snipper9": { + "type": "string", + "description": "The snippet 9.", + "title": "Snippet 9" + }, + "snippet10": { + "type": "string", + "description": "The snippet 10.", + "title": "Snippet 10" + }, + "snippet11": { + "type": "string", + "description": "The snippet 11.", + "title": "Snippet 11" + }, + "snippet12": { + "type": "string", + "description": "The snippet 12.", + "title": "Snippet 12" + }, + "snippet13": { + "type": "string", + "description": "The snippet 13.", + "title": "Snippet 13" + }, + "snippet14": { + "type": "string", + "description": "The snippet 14.", + "title": "Snippet 14" + }, + "snippet15": { + "type": "string", + "description": "The snippet 15.", + "title": "Snippet 15" + } + } + }, + "title": "Prospects" + } + } + } + } + ] + } + }, + "/campaign_list": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "status": { + "type": "string", + "description": "The status.", + "title": "Status" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "from_name": { + "type": "string", + "description": "The From name.", + "title": "From Name" + }, + "gdpr_unsubscribe": { + "type": "boolean", + "description": "Whether GDPR unsubscribe.", + "title": "GDPR Unsubscribe" + }, + "folder_name": { + "type": "string", + "description": "The folder name.", + "title": "Folder Name" + }, + "folder_id": { + "type": "integer", + "format": "int32", + "description": "The folder identifier.", + "title": "Folder ID" + }, + "from_email": { + "type": "string", + "description": "The From email address.", + "title": "From Email" + }, + "per_day": { + "type": "integer", + "format": "int32", + "description": "The number per day.", + "title": "Per Day" + }, + "bcc": { + "type": "string", + "description": "The BCC.", + "title": "BCC" + }, + "cc": { + "type": "string", + "description": "The CC.", + "title": "CC" + }, + "stats": { + "type": "object", + "properties": { + "interested": { + "type": "integer", + "format": "int32", + "description": "The number interested.", + "title": "Interested" + }, + "not_interested": { + "type": "integer", + "format": "int32", + "description": "The number not interested.", + "title": "Not Interested" + }, + "maybe_later": { + "type": "integer", + "format": "int32", + "description": "The number maybe later.", + "title": "Maybe Later" + }, + "replied": { + "type": "integer", + "format": "int32", + "description": "The number replied.", + "title": "Replied" + }, + "autoreplied": { + "type": "integer", + "format": "int32", + "description": "The number autoreplied.", + "title": "Autoreplied" + }, + "bounced": { + "type": "integer", + "format": "int32", + "description": "The number bounced.", + "title": "Bounced" + }, + "check": { + "type": "integer", + "format": "int32", + "description": "The number checked.", + "title": "Checked" + }, + "clicked": { + "type": "integer", + "format": "int32", + "description": "The number clicked.", + "title": "Clicked" + }, + "delivery": { + "type": "integer", + "format": "int32", + "description": "The number delivered.", + "title": "Delivered" + }, + "invalid": { + "type": "integer", + "format": "int32", + "description": "The number invalid.", + "title": "Invalid" + }, + "opened": { + "type": "integer", + "format": "int32", + "description": "The number openeded.", + "title": "Opened" + }, + "prospects": { + "type": "integer", + "format": "int32", + "description": "The number prospects.", + "title": "Prospects" + }, + "queue": { + "type": "integer", + "format": "int32", + "description": "The number queued.", + "title": "Queued" + }, + "sent": { + "type": "integer", + "format": "int32", + "description": "The number sent.", + "title": "Sent" + }, + "optout": { + "type": "integer", + "format": "int32", + "description": "The number opted out.", + "title": "Opted Out" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subject": { + "type": "string", + "description": "The subject.", + "title": "Subject" + }, + "msg": { + "type": "string", + "description": "The message.", + "title": "Message" + }, + "timezone": { + "type": "string", + "description": "The timezone.", + "title": "Timezone" + }, + "use_prospect_timezone": { + "type": "string", + "description": "The use prospect timezone.", + "title": "Use Prospect Timezone" + }, + "sunFrom": { + "type": "integer", + "format": "int32", + "description": "The number Sunday from.", + "title": "Sunday From" + }, + "sunTo": { + "type": "integer", + "format": "int32", + "description": "The number Sunday to.", + "title": "Sunday To" + }, + "monFrom": { + "type": "integer", + "format": "int32", + "description": "The number Monday from.", + "title": "Monday From" + }, + "monTo": { + "type": "integer", + "format": "int32", + "description": "The number Monday to.", + "title": "Monday To" + }, + "tueFrom": { + "type": "integer", + "format": "int32", + "description": "The number Tuesday from.", + "title": "Tuesday From" + }, + "tueTo": { + "type": "integer", + "format": "int32", + "description": "The number Tuesday to.", + "title": "Tuesday To" + }, + "wedFrom": { + "type": "integer", + "format": "int32", + "description": "The number Wednesday from.", + "title": "Wednesday From" + }, + "wedTo": { + "type": "integer", + "format": "int32", + "description": "The number Wednesday to.", + "title": "Wednesday To" + }, + "thuFrom": { + "type": "integer", + "format": "int32", + "description": "The number Thursday from.", + "title": "Thursday From" + }, + "thuTo": { + "type": "integer", + "format": "int32", + "description": "The number Thursday to.", + "title": "Thursday To" + }, + "friFrom": { + "type": "integer", + "format": "int32", + "description": "The number Friday from.", + "title": "Friday From" + }, + "friTo": { + "type": "integer", + "format": "int32", + "description": "The number Friday to.", + "title": "Friday To" + }, + "satFrom": { + "type": "integer", + "format": "int32", + "description": "The number Saturday from.", + "title": "Saturday From" + }, + "satTo": { + "type": "integer", + "format": "int32", + "description": "The number Saturday to.", + "title": "Saturday To" + }, + "sunday": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "integer", + "format": "int32", + "description": "The From number.", + "title": "From" + }, + "to": { + "type": "integer", + "format": "int32", + "description": "The To number.", + "title": "To" + } + } + }, + "title": "Sunday" + }, + "monday": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "integer", + "format": "int32", + "description": "The From number.", + "title": "From" + }, + "to": { + "type": "integer", + "format": "int32", + "description": "The To number.", + "title": "To" + } + } + }, + "title": "Monday" + }, + "tuesday": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "integer", + "format": "int32", + "description": "The From number.", + "title": "From" + }, + "to": { + "type": "integer", + "format": "int32", + "description": "The To number.", + "title": "To" + } + } + }, + "title": "Tuesday" + }, + "wednesday": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "integer", + "format": "int32", + "description": "The From number.", + "title": "From" + }, + "to": { + "type": "integer", + "format": "int32", + "description": "The To number.", + "title": "To" + } + } + }, + "title": "Wednesday" + }, + "thursday": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "integer", + "format": "int32", + "description": "The From number.", + "title": "From" + }, + "to": { + "type": "integer", + "format": "int32", + "description": "The To number.", + "title": "To" + } + } + }, + "title": "Thursday" + }, + "friday": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "integer", + "format": "int32", + "description": "The From number.", + "title": "From" + }, + "to": { + "type": "integer", + "format": "int32", + "description": "The To number.", + "title": "To" + } + } + }, + "title": "Friday" + }, + "saturday": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "integer", + "format": "int32", + "description": "The From number.", + "title": "From" + }, + "to": { + "type": "integer", + "format": "int32", + "description": "The To number.", + "title": "To" + } + } + }, + "title": "Saturday" + }, + "track_open": { + "type": "boolean", + "description": "Whether to track open.", + "title": "Track Open" + }, + "track_click": { + "type": "boolean", + "description": "Whether to track clicked.", + "title": "Track Click" + }, + "attach_follow": { + "type": "boolean", + "description": "Whether to attach follow.", + "title": "Attach Follow" + }, + "follow_up": { + "type": "integer", + "format": "int32", + "description": "The number to follow up.", + "title": "Follow Up" + }, + "condition": { + "type": "string", + "description": "The condition.", + "title": "Condition" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "The number.", + "title": "Number" + }, + "step": { + "type": "integer", + "format": "int32", + "description": "The step.", + "title": "Step" + }, + "emailSend": { + "type": "integer", + "format": "int32", + "description": "The number of email send.", + "title": "Email Send" + }, + "toSend": { + "type": "integer", + "format": "int32", + "description": "The number to send.", + "title": "To Send" + }, + "delivery": { + "type": "integer", + "format": "int32", + "description": "The number delivered.", + "title": "Delivery" + }, + "open_": { + "type": "string", + "description": "The open.", + "title": "Open" + }, + "open": { + "type": "integer", + "format": "int32", + "description": "The number opened.", + "title": "Open" + }, + "reply_": { + "type": "string", + "description": "The reply.", + "title": "Reply" + }, + "reply": { + "type": "integer", + "format": "int32", + "description": "The number replied.", + "title": "Reply" + }, + "invalid_": { + "type": "string", + "description": "The invalid.", + "title": "Invalid" + }, + "invalid": { + "type": "integer", + "format": "int32", + "description": "The number invalid.", + "title": "Invalid" + }, + "bounce_": { + "type": "string", + "description": "The bounce.", + "title": "Bounce" + }, + "bounce": { + "type": "integer", + "format": "int32", + "description": "The number bounced.", + "title": "Bounce" + } + } + }, + "title": "Emails" + } + }, + "title": "Stats" + }, + "error": { + "type": "string", + "description": "The error.", + "title": "Error" + }, + "timestamp": { + "type": "string", + "description": "The timestamp.", + "title": "Timestamp" + } + } + } + } + } + }, + "summary": "Get campaigns", + "description": "Retrieve a list of campaigns created on your Woodpecker account.", + "operationId": "CampaignsGet", + "parameters": [ + { + "name": "status", + "in": "query", + "x-ms-summary": "Status", + "description": "The status.", + "required": false, + "type": "string", + "enum": [ + "RUNNING", + "DRAFT", + "EDITED", + "PAUSED", + "STOPPED", + "COMPLETED", + "DELETED" + ] + }, + { + "name": "id", + "in": "query", + "x-ms-summary": "ID", + "description": "The identifier.", + "required": false, + "type": "integer" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "basic-auth": { + "type": "basic" + } + }, + "security": [ + { + "basic-auth": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://woodpecker.co/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://woodpecker.co/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Marketing" + } + ] +} diff --git a/independent-publisher-connectors/Woodpecker/apiProperties.json b/independent-publisher-connectors/Woodpecker/apiProperties.json new file mode 100644 index 000000000..ea067fd77 --- /dev/null +++ b/independent-publisher-connectors/Woodpecker/apiProperties.json @@ -0,0 +1,36 @@ +{ + "properties": { + "connectionParameters": { + "username": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide the API Key", + "constraints": { + "tabIndex": 2, + "clearText": true, + "required": "true" + } + } + }, + "password": { + "type": "securestring", + "uiDefinition": { + "displayName": "Enter Space", + "description": "The Enter Space for this api", + "tooltip": "Provide the Enter Space", + "constraints": { + "tabIndex": 3, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor", + "stackOwner": "Woodpecker" + } +} diff --git a/independent-publisher-connectors/Woodpecker/readme.md b/independent-publisher-connectors/Woodpecker/readme.md new file mode 100644 index 000000000..2daef38d4 --- /dev/null +++ b/independent-publisher-connectors/Woodpecker/readme.md @@ -0,0 +1,25 @@ +# Woodpecker +Woodpecker products are tailored to your cold emailing and lead generation needs. We are helping leaders improve the workflow within the team and shape their campaign results. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +You must sign up for an account with [Woodpecker](https://woodpecker.co/signup). + +## Obtaining Credentials +Once logged in to your account, navigate to the Integrations section of the Marketplace and you can create an API key. + +## Supported Operations +### Get prospects +Retrieve a list of all prospects added to your Woodpecker account. +### Delete prospects +Deletes one or more prospects from a specific campaign or entire database. +### Add prospects to list +Adds one or more prospect to the global prospects list. +### Add prospects to campaign +Add one or more prospects to a specific campaign. +### Get campaigns +Retrieve a list of campaigns created on your Woodpecker account. + +## Known Issues and Limitations +There are no known issues at this time.