Webforms don't have "Custom Fields" as that would assume that there is a "Standard Field" in a web form. Web forms exist outside Vicidial. They are web pages you create and place in the campaign's "web form" or "web form 2" when modifying the Campaign definition in the Vicidial GUI ... as a URL. Then (at a moment based on configuration, or when the agent pushes the web form button) the agent will have a Web Form Popup with that URL, with a page created by YOU. So ... inside that web page will be ALL custom content created by you.
The methodology for creating that web form is based on php and html. The data that will be "fed" to the web form is available in one of many ways: Simplest is to make one and push web form as an agent, get the popup and see what appears in the URL (this would have the added data fed to the web form, available for manipulation, in addition to the URL you specified). You can also use any of that information to reach into mysql and get more information. You can also reach out to any other location of data for more (once you understand php, you'll get that).
The syntax is also available in the Vicidial Manager's Manual. The Script Editor contains a nifty dropdown box as a shortcut for some of the fields that can be used. And there are examples in the /srv/www/htdocs/vicidial and/or agc folders, if I recall correctly.
This same methodology applies to a certain degree to dispo_url and start/end url entries (and even to scripts).
If you push the ( ? ) next to any of these fields in the admin GUI while editing a Campaign, you'll also get some helpful information on each. Consider them all at once, as they each have their uses and they are interchangeable in some cases and it is helpful to know how to use all of them ... at the proper moment, as they are similar in usage.