Skip to content

Conversation

@aostwaleg
Copy link
Contributor

@aostwaleg aostwaleg commented Nov 4, 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.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

  • I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
  • Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
  • Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
  • If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

@aostwaleg aostwaleg requested a review from a team as a code owner November 4, 2025 13:55
@aostwaleg
Copy link
Contributor Author

@microsoft-github-policy-service agree [company="Egain"]

@aostwaleg
Copy link
Contributor Author

@microsoft-github-policy-service agree company="Egain"

@aostwaleg
Copy link
Contributor Author

We’d really appreciate any help you can provide to help accelerate the review and approval process - this connector is time-sensitive for our delivery timelines.

@vmanoharas
Copy link
Contributor

Hi @aostwaleg,

Thank you for interest in submitting the connector.

However, we would suggest you to please go through the below links before submitting your connectors. We have two types of connectors.

  1. Verified Connectors - https://learn.microsoft.com/en-us/connectors/custom-connectors/submit-for-certification
  2. Independent Connectors - https://learn.microsoft.com/en-us/connectors/custom-connectors/submit-for-certification

Additionally, please refer the below link to prepare the connector.

https://learn.microsoft.com/en-us/connectors/custom-connectors/certification-submission

@aostwaleg
Copy link
Contributor Author

aostwaleg commented Nov 8, 2025

hi @vmanoharas ,
Thanks for your review. I aimed for the connector to be Verified Connectors and followed the guidelines provided in this link: https://learn.microsoft.com/en-us/connectors/custom-connectors/certification-submission#package-your-connector-files.

However, the validation failed with the following error:
"Flow solution in 'C:\eGain\copilot\Solution\ConnectorPackage.zip\package.zip/PkgAssets' is invalid. Flow solution should contain both 'Connector' and 'Workflows' folders.
Validate the flow solution has both 'Connector' and 'Workflows' components. If not so, please recreate the solution and export again."

My solution does not require any workflows, so they are not included. It solely comprises the connector solution and other solution with test Copilot agents. Let me know how to proceed.
ConnectorPackage.zip

So next I tried with Independent Connectors.

@vmanoharas
Copy link
Contributor

Thank you for sharing the connector package @aostwaleg.

However, the folder structure is not as expected, kindly follow the below folder structure.

image

@aostwaleg
Copy link
Contributor Author

Thank you for sharing the connector package @aostwaleg.

However, the folder structure is not as expected, kindly follow the below folder structure.

image

Thanks. I have resubmitted the package as per above structure as marketplace offer from Partner program. Here is the SAS URL for the same
image

@vmanoharas
Copy link
Contributor

Thank you @aostwaleg,

Kindly fix the following swagger validation errors.

##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/2
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/3
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/4
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/5
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/6
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/7
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/8
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/9
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/0
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/1
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/2
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/3
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/4
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/5
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/6
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/7
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/8
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/9
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/10
##[error]The 'contact' property is required. ValuePath: /info
##[error]The 'x-ms-connector-metadata' property is required.

@vmanoharas
Copy link
Contributor

##[error]The 'host' property, if present, must be a valid URI host without a scheme or path. ValuePath: /host
##[error]The value 'title' contains at least one of the restricted words: 'api, connector'. ValuePath: /info/title
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1{portalId}1search/get/parameters/0
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices
1v31internal1instantanswers1{portalId}1search/get/parameters/1
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices
1v3
1internal1instantanswers1{portalId}1search/get/parameters/2
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices
1v31internal1instantanswers1{portalId}1search/get/parameters/3
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices
1v3
1internal1instantanswers1{portalId}1search/get/parameters/4
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices
1v31internal1instantanswers1{portalId}1search/get/parameters/5
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices
1v3
1internal1instantanswers1{portalId}1search/get/parameters/6
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices
1v31internal1instantanswers1{portalId}1search/get/parameters/7
##[error]The 'summary' value goes over the character limit '80' ValuePath: /paths/1core1aiservices
1v3
1internal1instantanswers1generative/get/summary
##[error]The 'summary' value must end with alphanumeric character. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/summary
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/0
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/1
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/2
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/3
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/4
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/5
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/6
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/7
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/8
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1core1aiservices1v31internal1instantanswers1generative/get/parameters/9
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/0
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/1
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/2
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/3
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/4
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/5
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/6
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/7
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/8
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/9
##[error]The 'x-ms-summary' property is required. ValuePath: /paths/1knowledge1portalmgr1v31internal1portals1{portalId}1search1kb/get/parameters/10
##[error]The 'contact' property is required. ValuePath: /info
##[error]The 'x-ms-connector-metadata' property is required.

@aostwaleg
Copy link
Contributor Author

aostwaleg commented Dec 10, 2025

Update the swagger and properties. Also please add the certified-connector label to this PR. Thank you!

Copy link
Contributor

@vmanoharas vmanoharas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dear Partner,

Congratulations your PR is approved !! We are proud to announce the Brand-New Certification experience for you to certify Power Platform Copilot Connectors.

As next steps:

Learn about the new certification experience- Get your Power Platform connector and plugin certified - Overview
Package your connector files- Prepare Power Platform connector and plugin files for certification
Validate the package for structure before submitting the package for certification to Partner Center - Run Package Validator tool
Initiate a certification request in Partner Center- Verified publisher certification process
Ensure your connector files comply to the Marketplace policies here- 5000 Power Platform Connector Policies for Marketplace and also 1000 Marketplace policies(as applicable)
Test your connector post certification to provide go-live for deployment- Testing Guidelines
If you wish to Update your connector in future- Updating Guidelines

For any queries or concerns please get in touch with us on certificationteam@microsoft.com

Many thanks,
Power Platform
Copilot connector & plugin certification team

@vmanoharas vmanoharas merged commit 6e40e5e into microsoft:dev Dec 10, 2025
1 check passed
@vmanoharas
Copy link
Contributor

Update the swagger and properties. Also please add the certified-connector label to this PR. Thank you!

Hi @aostwaleg,

Thank you for fixing the errors. Merged the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants