dialogflow-fulfillment is a package for Python that helps developers to create webhook services for Dialogflow.

The package provides an API for creating and manipulating response messages, output contexts and follow-up events in conversations.

See also

For more information about fulfillment and how it works, see Fulfillment overview.

A simple example#

Working with dialogflow-fulfillment is as simple as passing a webhook request object from Dialogflow (a.k.a. WebhookRequest) to an instance of a WebhookClient and using a handler function (or a mapping of functions for each intent) via the handle_request() method:

from dialogflow_fulfillment import QuickReplies, WebhookClient

# Define a custom handler function
def handler(agent: WebhookClient) -> None:
    Handle the webhook request.

    This handler sends a text message along with a quick replies
    message back to Dialogflow, which uses the messages to build
    the final response to the user.
    agent.add('How are you feeling today?')
    agent.add(QuickReplies(quick_replies=['Happy :)', 'Sad :(']))

# Create an instance of the WebhookClient
agent = WebhookClient(request)  # noqa: F821

# Handle the request using the handler function

The above code produces the resulting response object (a.k.a. WebhookResponse), which can be accessed via the response attribute:

   'fulfillmentMessages': [
         'text': {
            'text': [
               'How are you feeling today?'
         'quickReplies': {
            'quickReplies': [
               'Happy :)',
               'Sad :('


The preferred way to install dialogflow-fulfillment is from PyPI with pip:

$ pip install dialogflow-fulfillment

See also

For further details about the installation, see Installation.


dialogflow-fulfillment’s key features are:

  • Webhook Client: handle webhook requests using a custom handler function or a map of handlers for each intent

  • Contexts: process input contexts and add, set or delete output contexts in conversations

  • Events: trigger follow-up events with optional parameters

  • Rich Responses: create and send the following types of rich response messages:

    • Text

    • Image

    • Card

    • Quick Replies

    • Payload


Currently, dialogflow-fulfillment has some drawbacks, which will be addressed in the future:

  • No support for platform-specific responses