Skip to content

Commit b94f2c3

Browse files
authoredApr 18, 2024··
Merge pull request #332 from navikt/avlyst-epost
TOLK-2359 : Automatisk utsendelse av mail til deltagere når et kurs avlyses
2 parents 9f5b0d3 + fd51916 commit b94f2c3

File tree

3 files changed

+437
-0
lines changed

3 files changed

+437
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,300 @@
1+
<!DOCTYPE html>
2+
<html style="overflow-y: hidden;">
3+
<head><meta content="text/html; charset=utf-8"><meta content="width=device-width" name="viewport"><meta content="IE=edge">
4+
<title></title>
5+
<style type="text/css">body {
6+
margin: 0;
7+
padding: 0;
8+
}
9+
10+
table,
11+
td,
12+
tr {
13+
vertical-align: top;
14+
border-collapse: collapse;
15+
}
16+
17+
* {
18+
line-height: inherit;
19+
}
20+
21+
a[x-apple-data-detectors=true] {
22+
color: inherit !important;
23+
text-decoration: none !important;
24+
}
25+
</style>
26+
<style id="media-query" type="text/css">@media (max-width: 755px) {
27+
28+
.block-grid,
29+
.col {
30+
min-width: 320px !important;
31+
max-width: 100% !important;
32+
display: block !important;
33+
}
34+
35+
.block-grid {
36+
width: 100% !important;
37+
}
38+
39+
.col {
40+
width: 100% !important;
41+
}
42+
43+
.col>div {
44+
margin: 0 auto;
45+
}
46+
47+
img.fullwidth,
48+
img.fullwidthOnMobile {
49+
max-width: 100% !important;
50+
}
51+
52+
.no-stack .col {
53+
min-width: 0 !important;
54+
display: table-cell !important;
55+
}
56+
57+
.no-stack.two-up .col {
58+
width: 50% !important;
59+
}
60+
61+
.no-stack .col.num4 {
62+
width: 33% !important;
63+
}
64+
65+
.no-stack .col.num8 {
66+
width: 66% !important;
67+
}
68+
69+
.no-stack .col.num4 {
70+
width: 33% !important;
71+
}
72+
73+
.no-stack .col.num3 {
74+
width: 25% !important;
75+
}
76+
77+
.no-stack .col.num6 {
78+
width: 50% !important;
79+
}
80+
81+
.no-stack .col.num9 {
82+
width: 75% !important;
83+
}
84+
85+
.video-block {
86+
max-width: none !important;
87+
}
88+
89+
.mobile_hide {
90+
min-height: 0px;
91+
max-height: 0px;
92+
max-width: 0px;
93+
display: none;
94+
overflow: hidden;
95+
font-size: 0px;
96+
}
97+
98+
.desktop_hide {
99+
display: block !important;
100+
max-height: none !important;
101+
}
102+
}
103+
</style>
104+
</head>
105+
<body class="clean-body" style="margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); height: auto; min-height: auto;">
106+
<table bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" class="nl-container" style="table-layout: fixed; vertical-align: top; min-width: 320px; Margin: 0 auto; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #FFFFFF; width: 100%;" width="100%">
107+
<tbody>
108+
<tr style="vertical-align: top;">
109+
<td style="word-break: break-word; vertical-align: top;">
110+
<div style="background-color:transparent;">
111+
<div class="block-grid" style="Margin: 0 auto; min-width: 320px; max-width: 735px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; background-color: transparent;">
112+
<div style="border-collapse: collapse;display: table;width: 100%;background-color:transparent;">
113+
<div class="col num12" style="min-width: 320px; max-width: 735px; display: table-cell; vertical-align: top; width: 735px;">
114+
<div style="width:100% !important;">
115+
<div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:5px; padding-bottom:5px; padding-right: 0px; padding-left: 0px;">
116+
<table border="0" cellpadding="0" cellspacing="0" class="divider" style="table-layout: fixed; vertical-align: top; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; min-width: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;" width="100%">
117+
<tbody>
118+
<tr style="vertical-align: top;">
119+
<td class="divider_inner" style="word-break: break-word; vertical-align: top; min-width: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px;" valign="top">
120+
<table align="center" border="0" cellpadding="0" cellspacing="0" class="divider_content" style="table-layout: fixed; vertical-align: top; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-top: 0px solid #BBBBBB; width: 100%;" width="100%">
121+
<tbody>
122+
<tr style="vertical-align: top;">
123+
<td style="word-break: break-word; vertical-align: top; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;" valign="top">&nbsp;</td>
124+
</tr>
125+
</tbody>
126+
</table>
127+
</td>
128+
</tr>
129+
</tbody>
130+
</table>
131+
</div>
132+
</div>
133+
</div>
134+
</div>
135+
</div>
136+
</div>
137+
138+
<div style="background-color:transparent;">
139+
<div class="block-grid three-up" style="Margin: 0 auto; min-width: 320px; max-width: 735px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; background-color: transparent;">
140+
<div style="border-collapse: collapse;display: table;width: 100%;background-color:transparent;">
141+
<div class="col num4" style="max-width: 320px; min-width: 245px; display: table-cell; vertical-align: top; width: 245px;">
142+
<div style="width:100% !important;">
143+
<div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:5px; padding-bottom:5px; padding-right: 0px; padding-left: 0px;">
144+
<div>&nbsp;</div>
145+
</div>
146+
</div>
147+
</div>
148+
149+
<div class="col num4" style="max-width: 320px; min-width: 245px; display: table-cell; vertical-align: top; width: 245px;">
150+
<div style="width:100% !important;">
151+
<div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:5px; padding-bottom:5px; padding-right: 0px; padding-left: 0px;">
152+
<div align="center" class="img-container center fixedwidth" style="padding-right: 0px;padding-left: 10px;">
153+
<div style="text-align: left;">&nbsp;</div>
154+
155+
<div style="text-align: center;">&nbsp;</div>
156+
157+
<div style="text-align: left;">&nbsp;</div>
158+
<img alt="NAV Logo" border="0" class="center fixedwidth" src="https://navdialog.my.salesforce.com/servlet/servlet.ImageServer?id=0152o000005v5nL&oid=00D2o000000aANV" style="text-decoration: none; border: 0px; height: auto; width: 100%; max-width: 134px; display: block; text-align: left;" title="NAV Logo" width="134" />
159+
<div style="font-size:1px;line-height:10px">&nbsp;</div>
160+
</div>
161+
</div>
162+
</div>
163+
</div>
164+
165+
<div class="col num4" style="max-width: 320px; min-width: 245px; display: table-cell; vertical-align: top; width: 245px;">
166+
<div style="width:100% !important;">
167+
<div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:5px; padding-bottom:5px; padding-right: 0px; padding-left: 0px;">
168+
<div>&nbsp;</div>
169+
</div>
170+
</div>
171+
</div>
172+
</div>
173+
</div>
174+
</div>
175+
176+
<div style="background-color:transparent;">
177+
<div class="block-grid" style="Margin: 0 auto; min-width: 320px; max-width: 735px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; background-color: transparent;">
178+
<div style="border-collapse: collapse;display: table;width: 100%;background-color:transparent;">
179+
<div class="col num12" style="min-width: 320px; max-width: 735px; display: table-cell; vertical-align: top; width: 735px;">
180+
<div style="width:100% !important;">
181+
<div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:0px; padding-bottom:0px; padding-right: 0px; padding-left: 0px;">
182+
<div class="mobile_hide">
183+
<table border="0" cellpadding="0" cellspacing="0" class="divider" style="table-layout: fixed; vertical-align: top; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; min-width: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;" width="100%">
184+
<tbody>
185+
<tr style="vertical-align: top;">
186+
<td class="divider_inner" style="word-break: break-word; vertical-align: top; min-width: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;" valign="top">
187+
<table align="center" border="0" cellpadding="0" cellspacing="0" class="divider_content" style="table-layout: fixed; vertical-align: top; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-top: 0px solid #BBBBBB; width: 100%;" width="100%">
188+
<tbody>
189+
<tr style="vertical-align: top;">
190+
<td style="word-break: break-word; vertical-align: top; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;" valign="top">&nbsp;</td>
191+
</tr>
192+
</tbody>
193+
</table>
194+
</td>
195+
</tr>
196+
</tbody>
197+
</table>
198+
</div>
199+
</div>
200+
</div>
201+
</div>
202+
</div>
203+
</div>
204+
</div>
205+
206+
<div style="background-color:transparent;">
207+
<div class="block-grid" style="Margin: 0 auto; min-width: 320px; max-width: 735px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; background-color: transparent;">
208+
<div style="border-collapse: collapse;display: table;width: 100%;background-color:transparent;">
209+
<div class="col num12" style="min-width: 320px; max-width: 735px; display: table-cell; vertical-align: top; width: 735px;">
210+
<div style="width:100% !important;">
211+
<div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:0px; padding-bottom:0px; padding-right: 0px; padding-left: 0px;">
212+
<div class="mobile_hide">
213+
<table border="0" cellpadding="0" cellspacing="0" class="divider" style="table-layout: fixed; vertical-align: top; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; min-width: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;" width="100%">
214+
<tbody>
215+
<tr style="vertical-align: top;">
216+
<td class="divider_inner" style="word-break: break-word; vertical-align: top; min-width: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; padding-top: 25px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px;" valign="top">
217+
<table align="center" border="0" cellpadding="0" cellspacing="0" class="divider_content" style="table-layout: fixed; vertical-align: top; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-top: 0px solid #BBBBBB; width: 100%;" width="100%">
218+
<tbody>
219+
<tr style="vertical-align: top;">
220+
<td style="word-break: break-word; vertical-align: top; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;" valign="top">&nbsp;</td>
221+
</tr>
222+
</tbody>
223+
</table>
224+
</td>
225+
</tr>
226+
</tbody>
227+
</table>
228+
</div>
229+
</div>
230+
</div>
231+
</div>
232+
</div>
233+
</div>
234+
</div>
235+
236+
<div style="background-color:transparent;">
237+
<div class="block-grid" style="Margin: 0 auto; min-width: 320px; max-width: 735px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; background-color: transparent;">
238+
<div style="border-collapse: collapse;display: table;width: 100%;background-color:transparent;">
239+
<div class="col num12" style="min-width: 320px; max-width: 735px; display: table-cell; vertical-align: top; width: 735px;">
240+
<div style="width:100% !important;">
241+
<div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:0px; padding-bottom:0px; padding-right: 0px; padding-left: 0px;">
242+
<div style="color:#3e3832;font-family:'Source Sans Pro', Tahoma, Verdana, Segoe, sans-serif;line-height:1.2;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;">
243+
<div style="font-size: 14px; line-height: 1.2; font-family: 'Source Sans Pro', Tahoma, Verdana, Segoe, sans-serif; color: #3e3832; mso-line-height-alt: 17px;">
244+
<p style="font-size: 14px; line-height: 1.2; word-break: break-word; font-family: &quot;Source Sans Pro&quot;, Tahoma, Verdana, Segoe, sans-serif; margin: 0px 20px;"><strong><span style="font-size: 42px;"><span style=""><span style="">Hei {{{Recipient.FirstName}}}&nbsp;</span></span></span></strong></p>
245+
</div>
246+
</div>
247+
248+
<div style="color:#3e3832;font-family:Source Sans Pro, Tahoma, Verdana, Segoe, sans-serif;line-height:1.5;padding-top:20px;padding-right:0px;padding-bottom:0px;padding-left:0px;">
249+
<div style="font-size: 14px; line-height: 1.5; color: #3e3832; font-family: Source Sans Pro, Tahoma, Verdana, Segoe, sans-serif; mso-line-height-alt: 21px;">
250+
<p style="font-size: 20px; line-height: 1.5; word-break: break-word; margin: 0px 20px;"><br />
251+
<strong>{{{CourseRegistration__c.Course__c}}}</strong><br />
252+
<br />
253+
Tidspunkt:&nbsp;<b>{{{CourseRegistration__c.CourseStart__c}}} -&nbsp;{{{CourseRegistration__c.CourseEnd__c}}}</b><br />
254+
Sted:&nbsp;<b>{{{CourseRegistration__c.CoursePlace__c}}}</b></p>
255+
</div>
256+
</div>
257+
</div>
258+
</div>
259+
</div>
260+
</div>
261+
</div>
262+
</div>
263+
264+
<div style="background-color:transparent;">
265+
<div class="block-grid" style="Margin: 0 auto; min-width: 320px; max-width: 735px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; background-color: transparent;">
266+
<div style="border-collapse: collapse;display: table;width: 100%;background-color:transparent;">
267+
<div class="col num12" style="min-width: 320px; max-width: 735px; display: table-cell; vertical-align: top; width: 735px;">
268+
<div style="width:100% !important;">
269+
<div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:0px; padding-bottom:5px; padding-right: 0px; padding-left: 0px;">
270+
<table border="0" cellpadding="0" cellspacing="0" class="divider" style="table-layout: fixed; vertical-align: top; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; min-width: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;" width="100%">
271+
<tbody>
272+
<tr style="vertical-align: top;">
273+
<td class="divider_inner" style="word-break: break-word; vertical-align: top; min-width: 100%; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px;" valign="top">
274+
<table align="center" border="0" cellpadding="0" cellspacing="0" class="divider_content" style="table-layout: fixed; vertical-align: top; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-top: 0px solid #BBBBBB; width: 100%;" width="100%">
275+
<tbody>
276+
<tr style="vertical-align: top;">
277+
<td style="word-break: break-word; vertical-align: top; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;" valign="top">&nbsp;</td>
278+
</tr>
279+
</tbody>
280+
</table>
281+
</td>
282+
</tr>
283+
</tbody>
284+
</table>
285+
</div>
286+
</div>
287+
</div>
288+
</div>
289+
</div>
290+
</div>
291+
292+
<div style="background-color:transparent;">
293+
<div class="block-grid" style="Margin: 0 auto; min-width: 320px; max-width: 735px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; background-color: transparent;">&nbsp;</div>
294+
</div>
295+
</td>
296+
</tr>
297+
</tbody>
298+
</table>
299+
</body>
300+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<EmailTemplate xmlns="http://soap.sforce.com/2006/04/metadata">
3+
<available>true</available>
4+
<encodingKey>UTF-8</encodingKey>
5+
<name>courseCancellation</name>
6+
<style>none</style>
7+
<subject>Kurs avlyst</subject>
8+
<type>custom</type>
9+
<uiType>SFX</uiType>
10+
</EmailTemplate>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
3+
<apiVersion>60.0</apiVersion>
4+
<description>Sends emails to participants when course is cancelled</description>
5+
<environments>Default</environments>
6+
<interviewLabel>Course Cancellation email {!$Flow.CurrentDateTime}</interviewLabel>
7+
<label>Course Cancellation email</label>
8+
<loops>
9+
<name>Send_email_to_all_participants_loop</name>
10+
<label>Send email to all participants loop</label>
11+
<locationX>176</locationX>
12+
<locationY>431</locationY>
13+
<collectionReference>Get_all_participants</collectionReference>
14+
<iterationOrder>Asc</iterationOrder>
15+
<nextValueConnector>
16+
<targetReference>Create_emails</targetReference>
17+
</nextValueConnector>
18+
</loops>
19+
<processMetadataValues>
20+
<name>BuilderType</name>
21+
<value>
22+
<stringValue>LightningFlowBuilder</stringValue>
23+
</value>
24+
</processMetadataValues>
25+
<processMetadataValues>
26+
<name>CanvasMode</name>
27+
<value>
28+
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
29+
</value>
30+
</processMetadataValues>
31+
<processMetadataValues>
32+
<name>OriginBuilderType</name>
33+
<value>
34+
<stringValue>LightningFlowBuilder</stringValue>
35+
</value>
36+
</processMetadataValues>
37+
<processType>AutoLaunchedFlow</processType>
38+
<recordCreates>
39+
<name>Create_emails</name>
40+
<label>Create emails</label>
41+
<locationX>264</locationX>
42+
<locationY>539</locationY>
43+
<connector>
44+
<targetReference>Send_email_to_all_participants_loop</targetReference>
45+
</connector>
46+
<inputAssignments>
47+
<field>SaveAsActivity__c</field>
48+
<value>
49+
<booleanValue>true</booleanValue>
50+
</value>
51+
</inputAssignments>
52+
<inputAssignments>
53+
<field>Status__c</field>
54+
<value>
55+
<stringValue>Instant</stringValue>
56+
</value>
57+
</inputAssignments>
58+
<inputAssignments>
59+
<field>TargetObjectId__c</field>
60+
<value>
61+
<elementReference>Send_email_to_all_participants_loop.CourseParticipant__c</elementReference>
62+
</value>
63+
</inputAssignments>
64+
<inputAssignments>
65+
<field>TemplateName__c</field>
66+
<value>
67+
<stringValue>courseCancellation</stringValue>
68+
</value>
69+
</inputAssignments>
70+
<inputAssignments>
71+
<field>WhatId__c</field>
72+
<value>
73+
<elementReference>Send_email_to_all_participants_loop.Id</elementReference>
74+
</value>
75+
</inputAssignments>
76+
<object>EmailQueue__c</object>
77+
<storeOutputAutomatically>true</storeOutputAutomatically>
78+
</recordCreates>
79+
<recordLookups>
80+
<name>Get_all_participants</name>
81+
<label>Get all participants</label>
82+
<locationX>176</locationX>
83+
<locationY>323</locationY>
84+
<assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
85+
<connector>
86+
<targetReference>Send_email_to_all_participants_loop</targetReference>
87+
</connector>
88+
<filterLogic>and</filterLogic>
89+
<filters>
90+
<field>Course__c</field>
91+
<operator>EqualTo</operator>
92+
<value>
93+
<elementReference>$Record.Id</elementReference>
94+
</value>
95+
</filters>
96+
<filters>
97+
<field>Status__c</field>
98+
<operator>EqualTo</operator>
99+
<value>
100+
<stringValue>Påmeldt</stringValue>
101+
</value>
102+
</filters>
103+
<getFirstRecordOnly>false</getFirstRecordOnly>
104+
<object>CourseRegistration__c</object>
105+
<storeOutputAutomatically>true</storeOutputAutomatically>
106+
</recordLookups>
107+
<start>
108+
<locationX>50</locationX>
109+
<locationY>0</locationY>
110+
<connector>
111+
<targetReference>Get_all_participants</targetReference>
112+
</connector>
113+
<doesRequireRecordChangedToMeetCriteria>true</doesRequireRecordChangedToMeetCriteria>
114+
<filterLogic>and</filterLogic>
115+
<filters>
116+
<field>Cancel__c</field>
117+
<operator>EqualTo</operator>
118+
<value>
119+
<booleanValue>true</booleanValue>
120+
</value>
121+
</filters>
122+
<object>Course__c</object>
123+
<recordTriggerType>Update</recordTriggerType>
124+
<triggerType>RecordAfterSave</triggerType>
125+
</start>
126+
<status>Active</status>
127+
</Flow>

0 commit comments

Comments
 (0)
Please sign in to comment.