Coder Social home page Coder Social logo

agileware / au.com.agileware.zoomzoom Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 0.0 431 KB

Integrate CiviCRM with Zoom to automate creation of Events, registration of participants and recording attendance

License: Other

PHP 91.31% Smarty 8.69%
civicrm-events civicrm-participants zoom-registrations zoom-settings civicrm-extension civicrm zoom civicrm-extensions

au.com.agileware.zoomzoom's Introduction

Zoom Zoom (au.com.agileware.zoomzoom)

This is just another CiviCRM extension which integrates with Zoom. Provides the following features:

  • CiviRule to create Zoom Webinar from Event and create Zoom Meeting from Event
  • CiviRule to update Zoom details
  • CiviRule to delete a Zoom
  • CiviRule to add an Event Participant to a Zoom
  • CiviRule to delete a Participant from a Zoom
  • Scheduled Job to import Zoom Webinars and Zoom Events as CiviCRM Events
  • Scheduled Job to check CiviCRM Events linked to Zoom and import the Zoom registrations, attendees and absentees. Record as CiviCRM Participants and update Participant Status.

The extension is licensed under AGPL-3.0.

Migrating from a JWT App

JWT Apps are deprecated on Zoom, so to ensure continued function this app has been converted to use OAuth Server-to-Server. Existing installations configured to use a JWT App will need to create and connect to a new app according to the instructions in the Getting Started section below.

Getting Started

  1. Zoom OAuth Server-to-Server credentials are required for this Integration. Create an OAuth Server-to-Server App in the Zoom Marketplace.
    1. Fill in the App Details
    2. Move through to the Scopes tab and ensure that the App has the appropriate scope permissions:
      • View all user meetings /meeting:read:admin
      • View and manage all user meetings /meeting:write:admin
      • View all user information /user:read:admin
      • View all user Webinars /webinar:read:admin
      • View and manage all user Webinars /webinar:write:admin Screenshot of appropriate scope configuration
    3. Continue to Activation and Activate your app
    4. Load the App Credentials tab to get the Account ID, Client ID and Client Secret
  2. In CiviCRM, go to the Zoom Settings page, Administer / Zoom Settings.
    • Insert the Account ID, Client ID and Client Secret from above.
    • Set the other options on the Zoom Settings page, as required.
  3. The following Scheduled Jobs are provided:
    • Import Zoom Webinars and Meetings - Enable this Scheduled Job if you want to create CiviCRM Events from Zooms. Specify a day offset to process Zooms with a start date either in the last X days (by providing a negative number) or from a future date. The default day_offset is -90 which will process Zooms with a start date in the last 90 days.
    • Import Zoom Registrations, Attendees, Absentees - Enable this Scheduled Job if you want to create CiviCRM Participant records in CiviCRM from Zoom registrations, attendance and absentees. This job will only process CiviCRM Events which are linked to a Zoom. Specify a day offset to process Events with a start date either in the last X days (by providing a negative number) or from a future date. The default day_offset is -90 which will process Events with a start date in the last 90 days. Note: As this Scheduled Job checks CiviCRM Events linked to a Zoom, it is a good idea to run this job after the Import Zoom Webinars and Meetings job.

Import Configuration Defaults

Zoom Zoom is provided with optional configuration sets that can be imported using a third party extension, CiviCRM Configuration Loader (configitems). To use these configuration sets:

  1. Install the configitems extension
  2. Go to "Administer / System Setings / Manage configuration sets" in CiviCRM
  3. Press the Import Configuration button:
  4. To install default CiviRules rulesets, use zoom_zoom_default_rules-v1.zip
  5. To install the sample schedule reminder message template, use zoom_zoom_schedule_reminder-v1.zip
  6. You can then create a schedule reminder from "Administer / Communications / Schedule Reminders":
  7. Press the Add Reminder button
  8. For the Used For field, select Event Type
  9. Your Event Type field should be Meeting and Webinar for the default setup, or use the event types you have configured for the Zoom Meeting, Event Type and Zoom Webinar, Event Type in the extension configuration at "Administer / Zoom Settings"
  10. For Participant Status, select Registered
  11. Fill out the rest of the basic fields as required
  12. Under Email: Use Template, select Zoom Event Reminder
  13. The HTML Format field will the have the imported template inserted into it, ready to be customised.

Schedule Reminder example

Credits and acknowledgements

Credit to Lighthouse Consulting and Design, Inc for developing https://github.com/lcdservices/biz.lcdservices.civizoom which was used as the basis for this new extension. Credit to Veda Consulting for developing https://github.com/veda-consulting-company/ncn-civi-zoom which was used as reference for the CiviRules implementation.

Requirements

  • PHP v7.4+
  • CiviCRM 5.37+

Installation (Web UI)

Learn more about installing CiviCRM extensions in the CiviCRM Sysadmin Guide.

Installation (CLI, Zip)

Sysadmins and developers may download the .zip file for this extension and install it with the command-line tool cv.

cd <extension-dir>
cv dl au.com.agileware.zoomzoom@https://github.com/agileware/au.com.agileware.zoomzoom/archive/master.zip

Installation (CLI, Git)

Sysadmins and developers may clone the Git repo for this extension and install it with the command-line tool cv.

git clone https://github.com/agileware/au.com.agileware.zoomzoom.git
cv en zoomzoom

About the Authors

This CiviCRM extension was developed by the team at Agileware.

Agileware provide a range of CiviCRM services including:

  • CiviCRM migration
  • CiviCRM integration
  • CiviCRM extension development
  • CiviCRM support
  • CiviCRM hosting
  • CiviCRM remote training services

Support your Australian CiviCRM developers, contact Agileware today!

Agileware

au.com.agileware.zoomzoom's People

Contributors

agileware-fj avatar agileware-justin avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

au.com.agileware.zoomzoom's Issues

Questions about zoomzoom functionality

Hi,

I'm trying to understand some nuances about how zoomzoom works. Can you help understand the following:

  • Does zoomzoom require manually creating Zoom meetings and then providing the meeting ID in Civi? Or does it create the meetings for you?
  • Does zoomzoom support multiple Zoom accounts?
  • Does zoomzoom import the private meeting join links for each participant so that they can be used in Scheduled Reminders from within Civi? The example schedule reminder uses {zoom.join_url} which I'm guessing is a custom field on the event rather than the participant?
  • How do you tell ZoomZoom which events are linked to a Zoom? I looked in the code and it looks like it creates some custom event types. Is it only those event types that get linked to a Zoom? Can we define our own?
  • Does ZoomZoom import participants that are unknown to Civi and create Civi records for them?
  • If a Civi event is deleted, does ZoomZoom delete the corresponding meeting in Zoom?

Thank you for your help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.