General plugins (Local): WebHooks

Maintained by Picture of Valentin Popov Valentin Popov
Adding WebHook features to the Moodle system.
51 sites
14 fans

Moodle WebHook’s

GitHub Release Build Status Codacy Badge

The Webhooks feature allows applications to receive real-time notification of changes to certain data.

Using Webhooks, your application will be able to receive notifications of changes to selected topics and their fields. Because of this, you do not have to rely on continuous or even periodic requests to check for updates. Notifications about Webhooks updates are sent as POST requests to the callback URL you specified. Notifications can indicate the very fact of a field change or include a new value.


  • Use any number of services for notification;
  • Customizing each external service;
  • Interception of all events in the Moodle system;
  • Use a secret phrase to authenticate requests;
  • JSON - Format of outgoing data;


Screenshot #0
Screenshot #1
Screenshot #2


Picture of Valentin Popov
Valentin Popov (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Plugins bot
    Wed, 25 Oct 2017, 2:10 PM
    Approval issue created: CONTRIB-7096
  • Picture of Sebastian Castellanos
    Wed, 20 Jun 2018, 5:50 AM
    Hi! Thanks for the plugin, we were looking something like this for log time smile
    Do you have some example of how to deal with the parameters of the events when make the post call ?
    I want to know what are the parameters send i by the differents events

    Best Regards.
  • Picture of Valentin Popov
    Thu, 21 Jun 2018, 4:11 PM
    Hi, Sebastian!

    Thanks for the feedback, it's very valuable to me.
    The data is sent in JSON format. An example can be found here:

    A full list of properties with a description can be found here:

    The plugin does not affect the available values and fields, only adds additional ones for identification. It:
    * `host` - Hostname;
    * `token` - Secret key to verify the request;
    * `extra` - Additional field in which you are free to add something of their own;
  • Picture of Sebastian Castellanos
    Mon, 25 Jun 2018, 8:50 PM
    Great, working perfect!
    One more thing, all this events are not asynchronous right, moodle will always wait for a response of the hook ?

  • Picture of Valentin Popov
    Tue, 26 Jun 2018, 1:48 PM
    Yes, the events are not asynchronous.
    I do not have a situation arises where it was a problem.

    I have an idea how to make them asynchronous.
    Tell me, is there a need for this?
  • Picture of Sebastian Castellanos
    Fri, 29 Jun 2018, 7:40 PM
    I created an async service in my backend, so now moodle can continue after events are fired.
  • Picture of Ben Girard
    Wed, 31 Oct 2018, 9:35 PM
    I have installed this powerful plugin, sadly when I select trigger events, my selection is never saved. I have an online hosted moodle (latest version), and I have REST services enabled. Do I need to enabled Web Services or any other components to make this work?
  • Picture of Ben Girard
    Wed, 31 Oct 2018, 9:47 PM
    Actually, I just noticed that another person as discovered this show stopper bug? Any hope for a quick fix? We have 17,000 students that will take quizzes in a few weeks, and was banking on this plugin to make it work. See reported issue here
  • Picture of Valentin Popov
    Fri, 2 Nov 2018, 7:10 AM
    Hi, Ben Girard!
    Thank you for your comment. Fixed the problem you found.
    Download the new release, everything should work.
  • Picture of Ben Girard
    Fri, 2 Nov 2018, 10:59 AM
    Hi all! The new plugin upgraded just fine now, and the events are being saved! The issue I have now, is the callback URL is never reached. Should the callback URL be encoded or decoded? Are there any instructions to help troubleshoot what I might be missing in my config to have the events triggering the callback?
  • Picture of Valentin Popov
    Fri, 2 Nov 2018, 7:46 PM
    Every action of the plugin is written in a journal (Administration > Report > Log). You can see what the remote server answered on the logs page. If the response code is 200, then notifications are sent, problems upstream.
  • Picture of Elliot Fieldhouse-Allen
    Fri, 30 Nov 2018, 1:27 AM
    I'm trying to get this to integrate to our slack (Which is only used by staff members) to notify staff that events have occurred such as submissions and forum posts. Can you suggest a way to get this working?

    I need it to read off as text in a Slack Message. (Ideally)
Please login to post comments