> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ledgerup.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Delegate an Assignment

> How to hand work to Ari: asking well, using threads, and a copyable library of real requests.

export const AriMention = () => <span className="slack-mention">@Ari</span>;

export const AriMessage = ({children, time = "2:47 PM"}) => <div className="slack-msg not-prose">
    <div className="slack-avatar" style={{
  backgroundColor: "transparent"
}}>
      <img src="/logo/ari/ledgerup-favicon.svg" alt="Ari" />
    </div>
    <div className="slack-msg-body">
      <span className="slack-name">Ari</span>
      <span className="slack-app-badge">APP</span>
      <span className="slack-time">{time}</span>
      <div className="slack-text">{children}</div>
    </div>
  </div>;

export const SlackMessage = ({children, name = "Bailey", initials = "B", color = "#611f69", avatar = "/images/bailey-avatar.png", app = false, time = "2:47 PM"}) => <div className="slack-msg not-prose">
    <div className="slack-avatar" style={{
  backgroundColor: avatar ? "transparent" : color
}}>
      {avatar ? <img src={avatar} alt={name} /> : initials}
    </div>
    <div className="slack-msg-body">
      <span className="slack-name">{name}</span>
      {app ? <span className="slack-app-badge">APP</span> : null}
      <span className="slack-time">{time}</span>
      <div className="slack-text">{children}</div>
    </div>
    <div className="slack-actions">
      <button type="button" className="slack-action-btn" aria-label="Copy message" title="Copy message" onClick={e => {
  const msg = e.currentTarget.closest(".slack-msg");
  const el = msg && msg.querySelector(".slack-text");
  if (el && navigator.clipboard) {
    navigator.clipboard.writeText(el.innerText);
    const btn = e.currentTarget;
    const prev = btn.innerHTML;
    btn.innerHTML = '<svg viewBox="0 0 24 24" fill="none" stroke="#2AD48A" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>';
    setTimeout(() => {
      btn.innerHTML = prev;
    }, 1200);
  }
}}>
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
          <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
        </svg>
      </button>
    </div>
  </div>;

Working with Ari is delegation, not programming. There's no syntax to memorize; you
describe the outcome you want in plain English, the way you'd brief a colleague, and Ari
figures out the steps across your connected systems.

## The basics

<Steps>
  <Step title="Mention Ari anywhere he's been added">
    Type `@Ari` followed by your request in any channel, thread, or direct message.

    * `@Ari what invoices are overdue?`
    * `@Ari send a reminder to acme-corp for invoice #INV-2024-001`
    * `@Ari show me this week's new contracts`
  </Step>

  <Step title="Follow up in the thread">
    Ari reads the entire thread and keeps the context. If someone mentions a customer
    in the main channel, reply in the thread with `@Ari what's their payment history?`
    and he knows exactly who you mean. A new thread starts a fresh conversation.
  </Step>

  <Step title="Refine instead of restarting">
    If the answer isn't quite right, say so in the thread: "make the due date 45 days
    instead," "now just the enterprise segment," "sort by amount descending." Ari
    revises without losing the work.
  </Step>
</Steps>

## Ask like a manager

The quality of Ari's work tracks the quality of the request, same as any teammate. The
pattern behind every good assignment: **who + what + constraints.**

<Accordion title="Specific requests beat vague ones">
  ❌ **Vague:** `@Ari show me customers`

  ✓ **Specific:** `@Ari show me customers who haven't paid in 60+ days and owe more than $10K`

  ❌ **Vague:** `@Ari send reminders`

  ✓ **Specific:** `@Ari send payment reminders to all customers with invoices over 45 days overdue, using the standard template`
</Accordion>

<Accordion title="Name the format you want">
  "As a table," "grouped by product first," "ranked by amount descending." Say it in the
  request and the answer arrives meeting-ready. If you always want the same format, make
  it a standing rule with [Instructions](/ari/work-together/instructions).
</Accordion>

<Accordion title="Give big questions room">
  For complex analysis ("compare all active contracts against Stripe"), include the time
  range and what a good answer looks like. Ari will tell you when a question needs a
  longer-running analysis and reply in the thread when it's done.
</Accordion>

## Starter assignments

Copy these and swap in your own customers and amounts. Each pair shows the kind of
reply to expect.

### Daily status checks

<SlackMessage><AriMention /> what invoices are overdue?</SlackMessage>

<AriMessage>
  3 invoices are overdue, totaling {"$"}7,500:
  <br />• TechStart Inc: {"$"}3,200, 45 days overdue (inv\_OLD123)
  <br />• Digital Agency Co: {"$"}2,800, 52 days overdue (inv\_OLD789)
  <br />• Growth Labs: {"$"}1,500, 38 days overdue (inv\_OLD456)

  <br />

  <br />

  Want me to draft follow-up reminders?
</AriMessage>

<SlackMessage><AriMention /> give me a summary of overdue invoices by age bucket</SlackMessage>

<AriMessage>
  Overdue by age bucket:
  <br />• 1 to 30 days: {"$"}4,100 across 4 invoices
  <br />• 31 to 60 days: {"$"}7,500 across 3 invoices
  <br />• 61 to 90 days: {"$"}2,000 across 1 invoice
  <br />• 90+ days: none

  <br />

  <br />

  Total overdue: {"$"}13,600 across 8 invoices.
</AriMessage>

<SlackMessage><AriMention /> which subscriptions renew this week?</SlackMessage>

<AriMessage>
  Two renewals this week:
  <br />• Acme Corp: Professional plan, {"$"}500/month, renews Thursday
  <br />• Global Systems LLC: quarterly service, {"$"}3,500, renews Friday

  <br />

  <br />

  Both have current payment methods on file.
</AriMessage>

### Invoicing

<SlackMessage><AriMention /> create an invoice for Acme Corp for {"$"}5,000 for January consulting</SlackMessage>

<AriMessage>
  Here's the draft:
  <br />• Customer: Acme Corp (cus\_ABC123)
  <br />• Amount: {"$"}5,000.00
  <br />• Description: January consulting
  <br />• Due: February 14 (net-30, your default)

  <br />

  <span className="slack-btn slack-btn-primary">Approve</span>
</AriMessage>

<SlackMessage><AriMention /> send invoice #INV-12345 to Acme Corp</SlackMessage>

<AriMessage>
  Ready to send invoice #INV-12345 ({"$"}5,000.00) to [billing@acme.com](mailto:billing@acme.com) from
  [ar@yourcompany.com](mailto:ar@yourcompany.com). Here's the email if you want to review it first.

  <br />

  <span className="slack-btn slack-btn-primary">✉️ Send Email</span>
  <span className="slack-btn">🕐 Schedule send</span>
  <span className="slack-btn">🗑️ Discard</span>
</AriMessage>

### Collections

<SlackMessage><AriMention /> send payment reminders to all customers with invoices overdue by more than 30 days</SlackMessage>

<AriMessage>
  Found 3 customers with invoices 30+ days overdue: TechStart Inc, Digital Agency Co,
  and Growth Labs. I've drafted a reminder for each, matched to how overdue they are.
  Review before anything sends:

  <br />

  <span className="slack-btn slack-btn-primary">Review 3 drafts</span>
</AriMessage>

<SlackMessage><AriMention /> log a payment promise from Acme Corp: {"$"}5,000 to be paid by February 28</SlackMessage>

<AriMessage>
  ✓ Logged: Acme Corp promised {"$"}5,000 by February 28. If payment hasn't arrived by
  then, I'll flag it here and suggest next steps.
</AriMessage>

### Revenue

<SlackMessage><AriMention /> what is our current ARR?</SlackMessage>

<AriMessage>
  Current ARR: {"$"}487,500 (MRR {"$"}40,625), up 26.6% versus December.

  <br />

  <br />

  Top contributors:
  <br />• Enterprise Corp: {"$"}15,000/month
  <br />• Tech Solutions LLC: {"$"}8,500/month
  <br />• Global Systems Inc: {"$"}6,200/month
</AriMessage>

<SlackMessage><AriMention /> show me the MRR waterfall for January</SlackMessage>

<AriMessage>
  January MRR waterfall:
  <br />• Starting MRR: {"$"}38,500
  <br />• New customers: +{"$"}3,750
  <br />• Expansions: +{"$"}1,200
  <br />• Contractions: −{"$"}625
  <br />• Churn: −{"$"}2,200
  <br />• Ending MRR: {"$"}40,625

  <br />

  <br />

  Churn was one customer (StartupXYZ). Want the detail?
</AriMessage>

### Reconciliation

<SlackMessage><AriMention /> show unmatched payments from the last 30 days</SlackMessage>

<AriMessage>
  2 unmatched payments in the last 30 days:
  <br />• {"$"}7,500 from ProjectCo (Feb 10): no open invoice for that amount. Possibly a
  prepayment.
  <br />• {"$"}2,000 from Global Systems LLC (Feb 18): looks like a partial payment on
  their {"$"}4,500 invoice.

  <br />

  <br />

  Want me to propose matches for both?
</AriMessage>

<SlackMessage><AriMention /> match the {"$"}5,000 payment from Acme Corp on February 15 to invoice #INV-12340</SlackMessage>

<AriMessage>
  Confirmed the details line up: {"$"}5,000 payment from Acme Corp on Feb 15, and invoice
  \#INV-12340 for {"$"}5,000, due Feb 14. Approve to mark them reconciled.

  <br />

  <span className="slack-btn slack-btn-primary">Approve</span>
</AriMessage>

### Automation

<SlackMessage><AriMention /> remind me every Monday morning at 9 AM to review overdue invoices</SlackMessage>

<AriMessage>
  ✓ Done. I'll message you here every Monday at 9:00 AM with the current overdue list
  so the review is one click away.
</AriMessage>

<SlackMessage><AriMention /> create a task: when a Stripe invoice becomes overdue, send a payment reminder email and notify #collections</SlackMessage>

<AriMessage>
  Task created, in approval mode:
  <br />• Trigger: a Stripe invoice becomes overdue
  <br />• Action: draft a payment reminder email and post it in #collections for
  sign-off

  <br />

  <br />

  Once you've approved a few runs and want it fully automatic, tell me to switch it to
  auto-execute.
</AriMessage>

Each [playbook](/ari/playbooks/invoicing) has a fuller set for its job.

## Set up the workspace for delegation

* **Dedicated channels** keep work findable: **#ar-team** for daily AR, **#collections**
  for strategy and follow-ups, **#customer-issues** for the complicated ones. Invite Ari
  to each.
* **Pin important responses** so distributed teammates see the decisions being made.
* **Use direct messages** for private queries; Ari works there too.

## What happens after you ask

Questions and lookups come back directly. Anything that changes data or contacts a
customer comes back as a plan with an **Approve** button first. That review step is
yours: see [Review plans and approvals](/ari/work-together/approvals).
