Skip to content
PlusLink by FundEasy
PlusLink for developers

PlusLink Plugin developer reference.

A reference for third-party developers adding the PlusLink Plugin to a pregnancy center website, so clients can book an open appointment online.

Requirements

The following requirements must be met to use the PlusLink Plugin.

  • Online appointment scheduling via the PlusLink Plugin is only available for pregnancy centers that use the eKYROS CenterPiece database.
  • The pregnancy center must be registered with the eKYROS call center in PlusLink. This is done within the CenterPiece database.
  • Once registered, the center receives an API key and a registration key from eKYROS. Those values configure the plugin so it shows that center's timeslots.
  • The center can then share the keys with its website vendor to configure the plugin on the website.
  • Sample HTML and JavaScript templates below show how to bootstrap (launch) the plugin from a website.

Basic template

This template displays the plugin inline within a page. No Bootstrap or jQuery is required. It should work on most websites by cutting and pasting the code.

The apiKey and regKeys in the samples are the published reference values. A center receives its own keys after it registers with PlusLink in CenterPiece.

inline-plugin.html
Html Template

    // put the iframe within the body tag of your html page.
    <iframe id="pluginFrame" src="https://pluslinkplugin.ekyros.com" style="width: 100%; min-height: 800px;" frameborder="0"></iframe>

Javascript Template

// eKYROS PlusLink Plugin Script v2.0
                    
<script>
    window.addEventListener('DOMContentLoaded', function() {

        // Get reference to plugin iframe contentWindow

        var f = document.getElementById('pluginFrame').contentWindow;

    // Setup plugin configuration data.
    // (Note: your center will receive an apiKey and regKey(s) upon registering with
    // the eKYROS Call Center in CenterPiece).
    //
    // Parameters:
    // type:                    Message type should always be 'ekyros'
    // apiKey:                  Identifies Call Center
    // regKeys:                 Array that identifies 1 or more registered office locations.
    // themeColor:              Optional. Specify a primary color used by the plug-in to match your
    //                          site's theme.  Default is color 'blue'. Accepts hex value or named color.
    // waitTimeInMinutes:       Optional. Specify duration (in minutes) before the user can create
    //                          another appointment.  Default is 30 minutes.
    // timeslotThrottleInDays:  Optional. Limit the number of timeslots displayed.
    //                          Valid value is between 1-30 days.  Default is 30 days.
    // hideCenterName:          Optional. Hide center Name, address & phone.
    //                          true/false.  Default is false.

        var data = {
        "type":     'ekyros',
        "apiKey":   '41301EE0-560C-45B3-BC89-CD32C1B2EE36',
        "regKeys":  ['CB124A4C-7679-4F96-84C9-87CEA27F8891','066B9A8A-872C-4E42-8F0A-09F6551B209B','37431EB3-CE82-4FA6-8587-BF1E1A27C8AA'],
        "themeColor": '#86A149',
        "waitTimeInMinutes": 30,
        "timeslotThrottleInDays": 30,   // Show 1-30 days of timeslots (DEFAULT IS 30).
        "hideCenterName": false
        };
                
        // Setup message listener to receive messages from the plugin.
        window.addEventListener("message", function(e){
                
            // Optional. Handle callback message when someone books an appointment
    
            if (e.data.type == 'ekyros') {
                
                // Do something like redirect to google analytics page etc...
                // UNCOMMENT THE LINE BELOW IF YOU ARE USING A REDIRECT PAGE!
                //window.location.href='https://my-site/my-google-analytics-page.html';
            }
                
            // Required! Handle initialization.  
            // Param1:   Configuration data.
            // Param2:   Secuity requirement.  Must be origin (domain) used in iframe SRC 
            //           attribute.
    
            if (e.data.type == 'ekyros-init') {
                
                f.postMessage(data, "https://pluslinkplugin.ekyros.com");
            }
        });
});
</script>
                

Bootstrap 4 template (advanced)

This template is based on Bootstrap 4. Some experience is required. Bootstrap 4 scripts and CSS must already be installed on the website. This example loads the plugin in a Bootstrap 4 dialog. Don't paste it onto a page that does not already use Bootstrap 4.

bootstrap-dialog.html
Html Template

<div id="myModal" class="modal fade" backdrop="static" tabindex="-1" role="dialog">
    <div class="modal-dialog modal-lg" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Schedule an Appointment</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            </div>
           
            <div class="modal-body">              
                <iframe id="modalFrame" src="https://pluslinkplugin.ekyros.com" style="width: 100%; min-height: 500px;" frameborder="0"></iframe> 
            </div>

            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

Javascript Template

<script>
                
    // Register with the bootstrap dialog show event
    
    $("#myModal").on("show.bs.modal", function () {
                
        //get reference to iframe contentWindow
        
        var f = $('#modalFrame')[0].contentWindow;
                
        // Setup plugin configuration data.
        // (note you will receive apiKey and regKey(s) upon registering with eKYROS callcenter
        // in CenterPiece).
        //
        // Parameters:
        // type:                   Message type should always be 'ekyros'
        // apiKey:                  Identifies Call Center
        // regKeys:                 Array that identifies 1 or more registered office locations.
        // themeColor:              Optional. Specify a primary color used by the plug-in to match your
        //                          site's theme.  Default is color 'blue'. Accepts hex value or named color.
        // waitTimeInMinutes:       Optional. Specify duration (in minutes) before the user can create
        //                          another appointment.  Default is 30 minutes.
        // timeslotThrottleInDays:  Optional. Limit the number of timeslots displayed.
        //                          Valid value is between 1-30 days.  Default is 30 days.
         // hideCenterName:         Optional. Hide center Name, address & phone.
        //                          true/false.  Default is false.
        
        var data = {
            "type":     'ekyros',
            "apiKey":   '41301EE0-560C-45B3-BC89-CD32C1B2EE36',
            "regKeys":  ["CB124A4C-7679-4F96-84C9-87CEA27F8891", 
                        "066B9A8A-872C-4E42-8F0A-09F6551B209B", 
                        "37431EB3-CE82-4FA6-8587-BF1E1A27C8AA"],
            "themeColor": '#86A149',
            "timeslotThrottleInDays": 30   // Show 1-30 days of timeslots (DEFAULT is 30).
        };
                
        // Required! Handle initialization.  The Plugin will request the configuration data
        //           upon initialization.
        // Param1:   Configuration data.
        // Param2:   Secuity requirement.  Must be origin (domain) used in iframe SRC 
        //           attribute.
        
        f.postMessage(data, "https://pluslinkplugin.ekyros.com");

    });
 
</script>
            

Register a callback function

There may be times when the parent page should hear from the plugin after an appointment is created. For example, you may want to redirect to a custom thank-you page on your site. Register a JavaScript function with the plugin to do that.

callback.js
Javascript Template
<script>   
    
    // Add the following block of code to the bottom of the basic javascript
    // template listed above, right below the f.postMessage() line.   

    window.addEventListener("message", function(e) {
            
        // security check.  make sure data type is from ekyros
        if (e.data.type == "ekyros") {
            
            // your custom javascript handler here 
    
            window.location.href = 'my-custom-web-page';
        }
    });
</script>

Configuration reference

The parent page sends this object to the plugin with postMessage after the plugin sends ekyros-init. The second argument of postMessage must be the origin used in the iframe src, https://pluslinkplugin.ekyros.com.

Parameter Required Default Description
typeYesekyrosMessage type. Always the string ekyros.
apiKeyYesnoneIdentifies the call center. Issued when the center registers.
regKeysYesnoneArray of registration keys. One or more, for each registered office location.
themeColorNobluePrimary color used by the plugin so it can match the site. A hex value or a named color.
waitTimeInMinutesNo30Minutes before the same device can create another appointment.
timeslotThrottleInDaysNo30How many days of timeslots to show. A whole number from 1 to 30.
hideCenterNameNofalseWhen true, hides the center name, address, and phone.

When an appointment is booked, the plugin posts a message whose type is ekyros. Use that message for a redirect or other follow-up, as in the callback template. The basic template listens for ekyros-init before it sends configuration. The Bootstrap dialog sends configuration when the dialog opens.

FAQ

Does the plugin limit how many appointments can be booked in a specific time frame?

Yes. A website visitor can schedule 1 appointment every 30 minutes (the default) from the same device. If someone tries again inside that window, the plugin returns a message asking them to wait before booking another appointment. See waitTimeInMinutes in the JavaScript template. This limits repeated bookings from the same device.

Can I customize the color of the plugin so it matches the center's website?

Yes. Set themeColor in the JavaScript. It accepts a hex value or a named color. The default is blue.

Can we add custom fields to the interface?

Not at this time. The plugin uses the same field definitions as the PlusLink Scheduler. Helpline operators at Option Line and Options United use the PlusLink Scheduler to book appointments for centers over the phone. Both schemas have to match.

Will the plugin show locations for other centers nearby, or only one center's locations?

The intent is to display one or more locations for a single pregnancy center on that center's own website. There isn't a technical reason the plugin cannot display locations for a group of centers in a specific region.

Can clients change an appointment after it has been booked?

Not from within the plugin. The center is notified of the new appointment within minutes of the booking. As a common practice, many pregnancy centers use the CenterPiece Scheduler to send text reminders for confirmation. The client can reply to that message and ask to reschedule.

Can a center be registered with one or more helplines in PlusLink and still use the plugin on its website?

Yes. A pregnancy center can, and should, register with the helplines in PlusLink and also use the website plugin. That brings referral traffic to the center. PlusLink keeps a timeslot from being double-booked between helpline operators and the website.

Does eKYROS provide support for the plugin? Is there a cost?

Yes, we provide support. No, we don't charge for that support. If you are a third-party website developer and need help, email sales@fundeasy.com or use the contact page. If you are a pregnancy center, contact your eKYROS account manager.

I'm not an eKYROS customer. Can my pregnancy center get online appointments through the PlusLink Plugin?

Yes, with a subscription to the CenterPiece database. Appointments from the PlusLink Plugin download into the CenterPiece Scheduler. To learn more about CenterPiece and eKYROS, email sales@fundeasy.com, see eKYROS, or book an eKYROS demo.

Support

Plugin support is included. There is no separate fee.

Website developers: sales@fundeasy.com or the contact page.

Pregnancy centers: your eKYROS account manager.

FundEasy, 217 6th Ave N STE 43638, Nashville, TN 37219.

Online appointment scheduling PlusLink FAQ PlusLink Terms