Skills loops

install
source · Clone the upstream repo
git clone https://github.com/TerminalSkills/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TerminalSkills/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/loops" ~/.claude/skills/terminalskills-skills-loops && rm -rf "$T"
manifest: skills/loops/SKILL.md
safety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
  • references .env files
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content

Loops

Overview

Loops is email marketing built for SaaS. Clean UI, event-based automations, transactional emails, and marketing campaigns. Designed as a modern Mailchimp alternative for startups and product teams.

Instructions

Step 1: Transactional Email

// lib/loops.ts — Send transactional email via Loops API
export async function sendTransactional(
  email: string,
  transactionalId: string,
  data: Record<string, string>
) {
  await fetch('https://app.loops.so/api/v1/transactional', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: `Bearer ${process.env.LOOPS_API_KEY}`,
    },
    body: JSON.stringify({
      email,
      transactionalId,    // template ID from Loops dashboard
      dataVariables: data,
    }),
  })
}

// Usage: send welcome email
await sendTransactional('user@example.com', 'welcome_email', {
  firstName: 'John',
  planName: 'Pro',
})

Step 2: Track Events

// Track events to trigger automated sequences
await fetch('https://app.loops.so/api/v1/events/send', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Authorization: `Bearer ${process.env.LOOPS_API_KEY}`,
  },
  body: JSON.stringify({
    email: 'user@example.com',
    eventName: 'plan_upgraded',
    eventProperties: { plan: 'pro', mrr: 49 },
  }),
})

Step 3: Contact Management

// Create or update contact
await fetch('https://app.loops.so/api/v1/contacts/update', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    Authorization: `Bearer ${process.env.LOOPS_API_KEY}`,
  },
  body: JSON.stringify({
    email: 'user@example.com',
    firstName: 'John',
    userGroup: 'pro-users',
    plan: 'pro',
  }),
})

Guidelines

  • Free tier: 1,000 contacts, 2,000 emails/month.
  • Event-based automations: trigger email sequences from app events (signup, upgrade, churn risk).
  • Built for SaaS — has concepts like user groups, event properties, and lifecycle stages.
  • For transactional-only needs, Resend is simpler. For full marketing, Loops is better.