Skip to content

Instantly share code, notes, and snippets.

View jeznag's full-sized avatar

Jeremy Nagel jeznag

View GitHub Profile
@jeznag
jeznag / check_that_message_can_be_sent.ds
Created March 6, 2024 04:19
Zoho Desk integration via Zoho Flow
map check_that_message_can_be_sent(int ticket_id, string sms_content, string send_btn_state, string channel, int desk_org_id)
{
try
{
if(channel != "SMS via Zoho Flow" || sms_content.isEmpty() || send_btn_state != "true")
{
info "stop processing outbound";
info "channel> " + channel;
info "sms_content> " + sms_content;
info "send_btn_state> " + send_btn_state;
@jeznag
jeznag / sending_with_emojis.ds
Created January 25, 2024 20:47
Send SMS from Zoho CRM
// Choose from number
from_number = "+234324324324";
module_name = "Leads";
record_id = 803228000138359036;
crm_record = zoho.crm.getRecordById(module_name, record_id);
to_number = crm_record.get("Mobile");
record_name = crm_record.get("First_Name") + " " + crm_record.get("Last_Name");
message_text = "🤒 Unfortunately your Orientation on " + 123 + " has been canceled due to staff illness. If concerned, contact - 1300 077 994. 🐾💞";
// leave media_urls as null if you're not sending MMS, otherwise this format: ["https://mysite.com/image.png"]
@jeznag
jeznag / app.html
Created January 19, 2019 05:36
Example Zoho CRM widget to allow TSV data downloads
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
[data-download] {
color: blue;
}
[data-download][href="#"] {
@jeznag
jeznag / widget.html
Created December 30, 2022 04:20
Widget to embed Zoho Creator form inside Zoho CRM
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h2>Zoho Creator Integration</h2>
<iframe id="creator-iframe" width="100%" height="800px"></iframe>
<script src="https://live.zwidgets.com/js-sdk/1.1/ZohoEmbededAppSDK.min.js"></script>
<script>
@jeznag
jeznag / GhostStack
Created August 17, 2021 07:43
CDK for Ghost CMS on Fargate with EFS for persistent attachments
import { Dictionary } from './utility/Dictionary'
import { Secret } from '@aws-cdk/aws-secretsmanager'
import { LogDriver } from '@aws-cdk/aws-ecs'
import { LogGroup } from './constructs/LogGroup'
import { Alarm } from '@aws-cdk/aws-cloudwatch'
import { AwsAccount } from './OkraInfra'
import cdk = require('@aws-cdk/core')
import ec2 = require('@aws-cdk/aws-ec2')
import ecs = require('@aws-cdk/aws-ecs')
import ecs_patterns = require('@aws-cdk/aws-ecs-patterns')
@jeznag
jeznag / safe-slack.js
Created August 31, 2023 02:59
Safe Slack
// ==UserScript==
// @name Safe Slack
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Hide channels + messages
// @author You
// @match https://app.slack.com/client/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=slack.com
// @grant none
// ==/UserScript==
@jeznag
jeznag / send_sms_from_zoho_books.ds
Created April 17, 2023 02:19
Sending invoice reminders via SMS from Zoho Books
organizationID = organization.get("organization_id");
payment_link_payload = Map();
payment_link_payload.put("customer_id",invoice.get("customer_id"));
payment_link_payload.put("payment_amount",invoice.get("total"));
payment_link_payload.put("description",invoice.get("invoice_number"));
payment_link_payload.put("expiry_time",invoice.get("due_date").toDate().addDay(90));
JSONString = Map();
JSONString.put("JSONString",payment_link_payload);
result = invokeurl
[
@jeznag
jeznag / missed_call_to_lead.ds
Created April 15, 2022 03:17
automatically create a new lead when a missed call comes in from an unknown number
call_record = zoho.crm.getRecordById("Calls",call_id);
caller_phone_number = call_record.get("Subject").getSuffix("Missed call from ");
new_lead_data = {"First_Name":"Unknown","Last_Name":"From missed call from " + caller_phone_number,"Phone":caller_phone_number,"Lead_Source":"Missed Call from unknown number"};
create_resp = zoho.crm.createRecord("Leads",new_lead_data);
new_lead_id = create_resp.get("id");
update_call_payload = {"What_Id":new_lead_id,"$se_module":"Leads"};
update_resp = zoho.crm.updateRecord("Calls",call_id,update_call_payload);
info update_resp;
@jeznag
jeznag / gist:3dc00c7c8bfbb7c1f1ad20e3208b9b3a
Created October 26, 2020 03:53
merge parquet files in S3
import pyarrow
import pyarrow.parquet as pq
import signal
import tarfile
import sys
import boto3
import io
import json
import re
import pandas as pd
@jeznag
jeznag / log_to_sentry.ds
Created September 17, 2021 20:38
log deluge errors to sentry
try
{
if(error_message == null || error_message == "" || error_message.toString().length() < 5)
{
return;
}
// Put your DSN here
dsn = "https://****@sentry.delugeonaluge.com/2";
processed_dsn = dsn.replaceAll("https://","").replaceAll("@","");
// Replace with the base URL (e.g. sentry.io/ )