Skip to content
// What the lead received. SMS and email both run with "On Error: Continue"; success requires an id.
const l = $('Compose Replies').first().json;
const smsRan = $('Send SMS').isExecuted;
const sms = smsRan ? $('Send SMS').first().json : null;
const mail = $('Send Email').first().json;
const err = (j) => (typeof j?.error === 'string' ? j.error : j?.error?.message ?? null);
const smsOk = Boolean(sms && !sms.error && sms.sid);
const mailOk = Boolean(mail && !mail.error && mail.id);
return [{
  json: {
    lead: { name: l.name, email: l.email, phone: l.phone, source: l.source, intent: l.intent, timeframe: l.timeframe, pre_approved: l.pre_approved },
    is_duplicate: l.is_duplicate,
    agent: l.agent,
    asked_listing: l.asked_listing,
    matches: l.matches,
    messages: l.messages,
    drip: l.drip,
    sent: {
      sms: smsOk, sms_error: smsRan ? (smsOk ? null : err(sms) ?? 'no message sid returned') : 'skipped (no phone or SMS disabled)',
      email: mailOk, email_error: mailOk ? null : err(mail) ?? 'no message id returned',
    },
  },
}];