A software vendor ships a custom API in a managed solution. Customers' developers must be able to react after the operation completes, for example by sending a notification, but must never be able to change its behavior or cancel it. Which AllowedCustomProcessingStepType value should the vendor set?
Select an answer to reveal the explanation.
Short Explanation
There are three dials: None means nobody else plugs in, Async Only means they can listen after the fact, and Sync and Async means they can meddle mid-flight. Your vendor wants listeners but not meddlers, so it's Async Only. The trap is assuming a managed solution blocks sync steps for you; it doesn't.
Full Explanation
The AllowedCustomProcessingStepType column on the CustomAPI table controls what other developers may register on the message the custom API creates. Async Only permits asynchronous steps, which run after the operation finishes and cannot cancel it or alter its output, while preventing synchronous steps that could change behavior. That matches a vendor who wants customers to react without interfering, and it is also the setting recommended for the business events pattern. None blocks every custom processing step, including asynchronous ones, so customers could not attach the notification logic. Sync and Async removes all restrictions, letting third-party synchronous plug-ins modify or cancel the operation; packaging the custom API in a managed solution does not override this setting, so synchronous registrations would still be allowed. The step type is a property of the custom API itself, not of individual request parameters, and request parameters have no such column. Exam caveat: AllowedCustomProcessingStepType cannot be changed after the custom API record is saved, so the vendor must choose correctly before shipping; changing it later requires deleting and recreating the API. Operational check: in a customer environment, attempt to register a synchronous step on the message in the Plug-in Registration Tool and confirm it is rejected, then confirm an asynchronous step registers successfully.