Skip to content

This application create freshdesk ticket automatically based on the tags

Notifications You must be signed in to change notification settings

hariprasath2603/FW-Stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FW-Stack

This project is built for Freshworks Freshdesk. This NodeJs application creates an automatic ticket based on the question tag. Just enter the list of tags and then this application creates a ticket to Freshdesk.

ScreeenShoot

Ticket List

Screen_1

Individual Ticket

Screen_2

Architecture

FW-Stack Arch

  • AWS DynamoDb, Lambda, Cloudwatch are required.
  • Instead of AWS Lambda, you can use setTimeout also on a backend server but it is not efficient.

Functions 🎟️

Function Name Description
createTicket It accepts parameters and create a new ticket on Freshdesk
requestInfo Get questions list and transform to parameters required to create ticket
main This is the main function where questions gathered from StackOverflow and passed to next function
getLastQuestionValue It gets the last questionId inserted or checked from StackOverflow
updateLastQuestionValue It stores the fist question id so that on next time we terminate when this questionId repeats

Caution ⚠️

Stackoverflow only allows 300 requests/day. If you want more frequent execution register and integrates the key from Stack Apps.

AWS Configuration

  • Create DynamoDB with two fields AppName and lastQuestion
  • Create a Lambda function with this Nodejs project
  • Add IAM permissions of Read and Write in specific DynamoDB to Lambda function
  • Add environmental variables to the lambda function
  • Enable AWS CloudWatch with the rules of trigger lambda with schedule time of your choose (5 min recommended)

Environment variables

  • Use AWS with valid IAM role permissions on that DynamoDB
  • Create a DynamoDBin AWS
  • These parameters are required for this project
  • Enter the tags you have to listen in the main function parameters
  • Config file contains the required variables
  • Change this parameters to your tag which want to lookfor.
    • const parameters = ["firebase","google-cloud"].join(",")
    • Now it looking for firebase and google-cloud
    • change tags to what you prefered
Environment variables Description
accessKeyId AWS access key
secretAccessKey AWS secret Key
region Region where DynamoDB created
DynamoDBTableName Name of the table created in AWS DynamoDB
FD_ENDPOINT Your Freshdesk app endpoint (subdomain)
API_KEY Freshdesk API key

Packages & others 📦

  • AWS-SDK
  • unirest
  • Freshworks REST APIs

Future plan

  • Direct reply from Freshdesk to StackOverflow
  • Upvote

About

This application create freshdesk ticket automatically based on the tags

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published