Skip to content

Instantly share code, notes, and snippets.

View wvpv's full-sized avatar

Adam Spriggs wvpv

View GitHub Profile
@wvpv
wvpv / upsert-dataextension-object-soap.xml
Created March 8, 2024 20:45
Upsert DataExensionObject via SOAP
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<a:Action s:mustUnderstand="1">Create</a:Action>
<a:To s:mustUnderstand="1">{{soapEndpoint}}</a:To>
<fueloauth xmlns="http://exacttarget.com">{{accessToken}}</fueloauth>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<UpdateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options>
@wvpv
wvpv / list-function.js
Created December 12, 2023 18:11
SSJS List Functions
<script runat="server" language="JavaScript">
Platform.Load("core","1");
var debug = true;
var prox = new Script.Util.WSProxy();
var mid = Platform.Function.AuthenticatedMemberID();
var publicationLists = getAllPublicationLists();
if (debug) {
@wvpv
wvpv / file-upload-cb-processor.js
Created October 31, 2023 16:10
Content Builder File Upload Processor
<script runat="server" language="JavaScript">
Platform.Load("Core","1");
/* adapted from https://sfmarketing.cloud/2020/02/29/create-a-cloudpages-form-with-an-image-file-upload-option/ */
var results = {};
results.result = {};
results.debug = {};
results.error = {};
@wvpv
wvpv / file-upload-cb.html
Last active October 31, 2023 16:12
Content Builder File Upload
<script runat="server" language="ampscript">
set @processingPageURL = "https://YOURTENANTHERE.pub.sfmc-content.com/YOURPATHHERE"
</script><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
@wvpv
wvpv / isdst.amp
Last active March 8, 2024 16:33
Check if date is DST with AMPscript
%%[
set @dateToCheck = "2023-10-25"
set @month = datepart(@dateToCheck, "M")
set @day = datepart(@dateToCheck, "D")
set @daysOfWeek = "SunMonTueWedThuFriSat"
set @dayOfWeekToFind = format(@dateToCheck,"ddd")
set @dayOfWeekNum = divide(add(indexof(@daysOfWeek,@dayOfWeekToFind),2),3)
@wvpv
wvpv / send_report.sql
Created August 9, 2023 17:30
Send Report
select
s.id JobID
, s.SentDate AT TIME ZONE 'Pacific Standard Time' as SentDate
, s.status JobStatus
, s.EmailName
, s.NumberTargeted Targeted
, s.NumberDelivered Delivered
, case
when isnull(s.NumberTargeted,0) = 0 then 0
else cast((s.NumberDelivered) as decimal(18,4)) / cast(s.NumberTargeted as decimal(18,4))
@wvpv
wvpv / JourneyJobs.sql
Created July 24, 2023 13:45
Journey Jobs
select
j.jobid
, j.emailName
, jn.journeyName
, max(jn.versionNumber) versionNumber
from _Job j
inner join (
select
convert(varchar(36), ja0.VersionID) VersionID /* UniqueIdentifier datatype doesnt play nicely with JO-INs */
@wvpv
wvpv / JourneyEmails.sql
Last active August 21, 2023 04:07
Journey Emails
select
left(convert(varchar(36), jn.VersionID),36) VersionID
, left(jn.JourneyName,100) JourneyName
, left(ja.ActivityName,100) ActivityName
, left(ja.JourneyActivityObjectID,36) JourneyActivityObjectID
from _Journey jn
inner join (
select
convert(varchar(36), ja0.VersionID) VersionID /* UniqueIdentifier datatype doesnt play nicely with JO-INs */
@wvpv
wvpv / assets.js
Created April 4, 2023 16:48
Content Builder Asset Inventory
<script runat="server" language="JavaScript">
Platform.Load("core","1");
var debug = false;
try {
var prox = new Script.Util.WSProxy();
var startTime = Now();
var timeoutMilliseconds = 1500000; // 25 minutes