fix(akquise): Berater-Mail ohne Link ins CRM
Die Berater haben keinen Zugang zum CRM. Die Mail verlinkt nur noch die Ausschreibung, falls hinterlegt; der Hinweis auf die Einstellungen in der Fusszeile entfaellt ebenso. CRM_PUBLIC_URL wird nicht mehr gebraucht. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
6772f34b4e
commit
019fa1a251
+2
-3
@@ -46,9 +46,8 @@ MS_CLIENT_ID=
|
||||
MS_CLIENT_SECRET=
|
||||
MS_MAILBOX=crm@perinco.de
|
||||
|
||||
# Adresse des CRM fuer den Link in der Berater-Mail bei neuem Projekt
|
||||
# (braucht zusaetzlich die Anwendungsberechtigung Mail.Send).
|
||||
# CRM_PUBLIC_URL=https://crm.perinco.de
|
||||
# Die Berater-Mail bei neuem Projekt braucht zusaetzlich die
|
||||
# Anwendungsberechtigung Mail.Send (siehe docs/11-postfach.md).
|
||||
|
||||
# Ordner im Postfach. "inbox" ist ein von Graph vorgegebener Name.
|
||||
# MS_MAIL_FOLDER=inbox
|
||||
|
||||
@@ -14,12 +14,13 @@ import { splitConsultants } from './acquisitionRules.js';
|
||||
* App hat dafuer die Anwendungsberechtigung Mail.Send. Antworten gehen per
|
||||
* Reply-To an den Benutzer, der das Projekt eingetragen hat.
|
||||
*
|
||||
* Die Berater haben keinen Zugang zum CRM - die Mail verlinkt deshalb nur die
|
||||
* Ausschreibung (falls hinterlegt) und nie das CRM selbst.
|
||||
*
|
||||
* Der Versand laeuft nach der Antwort an den Browser und darf das Speichern nie
|
||||
* scheitern lassen: ein Fehler landet im Log, der Eintrag ist trotzdem da.
|
||||
*/
|
||||
|
||||
const PUBLIC_URL = (process.env.CRM_PUBLIC_URL || 'https://crm.perinco.de').replace(/\/+$/, '');
|
||||
|
||||
/** Beschreibung in der Mail kuerzen - der volle Text steht im CRM. */
|
||||
const MAX_DESCRIPTION_CHARS = 1500;
|
||||
|
||||
@@ -96,9 +97,7 @@ export function buildMessage(acquisition, consultantName) {
|
||||
description
|
||||
? `<p style="white-space:pre-wrap;border-left:3px solid #ddd;padding-left:12px;color:#444">${escapeHtml(description)}</p>`
|
||||
: '',
|
||||
`<p><a href="${PUBLIC_URL}/">Im perinco CRM öffnen</a></p>`,
|
||||
'<p style="color:#888;font-size:12px">Automatische Nachricht aus dem perinco CRM. ',
|
||||
'Die Benachrichtigung lässt sich unter Einstellungen → Akquise je Berater abschalten.</p>',
|
||||
'<p style="color:#888;font-size:12px">Automatische Nachricht von perinco.</p>',
|
||||
'</div>',
|
||||
].join('');
|
||||
|
||||
|
||||
@@ -54,6 +54,10 @@ check(
|
||||
message.html.includes('<a href="https://example.com/p?a=1&b=2">https://example.com/p?a=1&b=2</a>')
|
||||
);
|
||||
check('Leere Felder fehlen', !message.html.includes('Projektpreis'));
|
||||
check('Kein Link ins CRM', !/crm\.perinco|CRM/.test(message.html));
|
||||
|
||||
const withoutLink = buildMessage({ id: 2, title: 'Ohne Link', link: null }, 'Nico');
|
||||
check('Ohne Link: kein <a>', !withoutLink.html.includes('<a ') && !withoutLink.html.includes('Link zum Projekt'));
|
||||
|
||||
console.log(
|
||||
failures === 0 ? '\nAlle Pruefungen bestanden.' : `\n${failures} Pruefung(en) fehlgeschlagen.`
|
||||
|
||||
Reference in New Issue
Block a user