Build a form by choosing field types, text, dropdown, multi-select, and mapping each one to a custom field or the task description on the destination project. The form link is shareable publicly or restricted to people within your organization, and submitting it doesn't require the requester to have an Asana login at all.
Submissions can route to different sections or get different default assignees based on which fields the requester filled in, covering the common case of a single intake form that needs to branch into several different workflows depending on the request type.
What's missing: there's no API to create or edit a form's field structure. Forms are UI-only objects. If the same intake form needs replicating across several teams, each with a slightly different project destination, that's either a manual rebuild or a job for browser automation driving the form builder directly.