Register
Submit a solution
The challenge is finished.

Challenge Overview

 

This contests aims at adding the ability to post Action Links in Chatter. 

An action link is a URL on a post that links to an API, a Web page, or a file. Enabling users to work in the feed is the most powerful way to ensure that they adopt and engage in Chatter via Salesforce1.

Currently Action Links are introduced as a pilot program

Introduction:

Randivoo is a visitor management system that consists of several components: An iPad "kiosk" application, an API (SAM) that does all the heavy lifting, and this salesforce application called "Randivoo Force".  This application provides three main functions: 

  1. Allows salesforce users to send all invitees of a salesforce Event into SAM and then send the invitees unique QR codes via email
  2. Provides a configuration service for the Randivoo Kiosk application
  3. Chatters the event owner in salesforce when an invitee is check in at the kiosk

.

Summary of tasks:

1. Develop a new Rest Service Named “\brivolabs-requestAction”

2.  Add new field ‘Action Link Pilot Key’ in the Brivo_Labs_Randivoo_Chatter_Config__c custom setting to keep the pilot key

 

 Description of the Rest service “\brivolabs-requestAction”: 

This service should take in 3 parameters:

  •  event Id
  •  contact Id
  • callbackURL

The rest service should use Connect REST API and  Chatter REST API to define action links and associate them with feed items. This makes it a 2 step process:

1. Make a REST Api call to /services/data/v31.0/connect/action-link-group-definitions to create action Links

2. Make a REST Api call to /services/data/v31.0/chatter/feed-elements to create the Feed post with Action links.

 

Steps to be performed in the Rest service:

1. Make a REST Api call to /services/data/v31.0/connect/action-link-group-definitions to create 2 action Links (“Yes”,”No”)

  •    Action links should expire in 60 seconds
  •    Action links should be performed only by the event owner
  •    For Action Links  set the URL to callbackURL
  •    Action link should contain a message body. Add these key value pairs in the message body:
    • "action":  "accept" / "deny" (For "Yes" Link / "No" Link respectively)
    • "uniqueID":"dummy string"
  •    When user clicks “No” , there should be a Confirmation message
  •    When user clicks “Yes”, the resulting message should say “Access Granted”

   2. After Action links have been created, make a REST Api call to /services/data/v31.0/chatter/feed-elements to create the Feed post with Action links.

  •    The feed post Text should say    :  Your contact, <Contact Name>, is at the front door requesting access. Do you want to grant him access?
  •    Include a Mention Segment for the event owner id. the Final Post should look Like this: <@mention_EventOwner>  Your contact, <Contact Name>, is at the front door requesting access. Do you want to grant him access?

   3. Finally call BrivolabsCheckIn_helper.saveActivityLog to add an activity log with the action ‘checkin’

 

Important:

1. When creating the json body do not use string concatenations. Reuse method getJsonBody defined in ApplicationUtil class

2. the Rest class should be defined with "with sharing"

3. Reuse methods defined in BrivolabsCheckIn_helper to get event and Contact information.

4. Add methods to create Action links and Feed post to the BrivolabsCheckIn_helper class . Use the ConnectApi to create action links.

5. Samples of the JSON Bodies for each rest call will be provided in the forums

6. Your code should have 95% to 100% code coverage

(Code Dump and Samples of JSON will be provided in the Project Forum.)

 



Final Submission Guidelines

Your Submission should include:

  • Ant deployment package of the source code
  • Link to the Un-managed package 
  • Video demonstrating the rest service in work
  • Video that gives a walk thru of the code

Note: We want to encourage use of GIT (not Git Hub). For this, the code dump includes a .git directory.
      You should commit your changes locally only 
      Use this  command to commit your changes:
      git commit -a -m 'my changes'

      After your final commit, submit your zipped code source.

 

Review style

Final Review

Community Review Board

Approval

User Sign-Off

Challenge links

ID: 30045481