Webhooks can be considered in the same category as the API: it is a method / pattern for applications to talk to each other.
The two topics cannot be looked at completely seperate. They overlap. Webhooks just give a different way of thinking about how to connect.

Polling versus synchronisatie

In case of Polling, the web server or API is requested for an update at an interval. In general case, the polling is done according to a schedule defined by the integration platform. Some integration platform provides a scheduler which a user can configure to run hourly, weekly, every fortnight etc. In most of the cases, the integration provider is given option to schedule an integration and the tool will manually invoke the integration at that particular schedule.

Pull versus push

Who is triggering the event? Data is pushed by a source application to a target application or pulled from the target application from the source. As the target application does not know when events take place in the source application the target application needs to pull frequently to fetch recent data. What is recent? That is dependant on the polling intervall. Is it once a day? Then the data collection will be different than once an hour. By using webhooks, this topic can be avoided completely. The source application is actually triggering based on an event and only sending if something is actually changed.

Error handling

A webhook is triggered. Data is delivered to the target application. Outgoing webhooks are delivered to a URL. The delivery is technically checked, based on the HTTP reponse code of the target application. The response code needs to be between 200 and 399. If the URL is not available, the application will try several times before the webhook is failing permanently. The feedback of the target application is not checked. The action is delevered "as-is".