Fulfillment is code that is deployed as a webhook that lets you generate dynamic responses for every type of smart home intent. During a user conversation with Google Assistant, fulfillment allows you to use the information extracted by Google's natural language processing to generate dynamic responses or trigger actions on your back-end such as turning on a light.

Your fulfillment receives requests from Assistant, processes the request and responds. This back-and-forth request and response process drives the conversation forward until you eventually fulfill the initial user request.

In most cases, a user would have a simple smart home interaction with Assistant such as Hey Google, turn on my light. However, if you implement secondary user verification, your fulfillment might have to process multiple requests and responses as Assistant might ask for a confirmation PIN after a specific user request such as Hey Google, unlock my front door.

Figure 1 shows a successful fulfillment and execution of a smart home EXECUTE intent.

This figure shows the execution flow for cloud execution. The
            execution path captures a user's intent from a phone with
            Google Assistant, then the user intent is processed by
            the Google Cloud, then the request is sent to the developer cloud,
            and then the command is issued to the device hub or
            directly to the device.
Figure 1: A successful developer cloud execution path