LASA Agent System
Operations Guide

19 AI agents running your business on autopilot. This guide covers how each agent works, when it runs, what it needs, and how to keep it healthy.

Quick access: All agents live at lasatech.app.n8n.cloud. CEO console is at /console. Emails go to ceo@lasa.in.

System Architecture

All agents are built on n8n Cloud and use Claude (Anthropic API) as the AI brain. Gmail handles all email delivery. Two data tables act as a lightweight CRM.

LayerToolPurpose
Orchestrationn8n CloudSchedules, webhooks, workflow logic
AI BrainClaude claude-sonnet-4-6 (Anthropic)Generates all emails, reports, content
EmailGmail OAuth2Sends all outbound emails
CRMn8n Data Tablesleads and clients tables
ResearchPerplexity APICompany research + backlink discovery (Agents #1, #10)
SocialLinkedIn OAuth2Auto-posting (Agent #11)

Agents are either webhook-triggered (run when something happens) or scheduled (run on a timer automatically). You only need to act when an agent emails you asking for approval or a decision.

Credentials

Rotate your Anthropic API key. The key used during setup was shared in a chat session. Generate a new key at console.anthropic.com and update it in n8n Credentials.
CredentialUsed ByWhere to AddStatus
Anthropic APIAll 15 Claude nodesn8n → Credentials → "Anthropic account"Active
Gmail OAuth2All email nodesn8n → Credentials → "Gmail OAuth2 API"Active
Perplexity APIAgent #1, #10n8n → Credentials → Add "Perplexity"Missing
LinkedIn OAuth2Agent #11n8n → Credentials → Add "LinkedIn OAuth2"Missing

To update a credential: go to lasatech.app.n8n.cloud/credentials, click the credential, update the value, save.

Sales & BD — Agents 1–3

#1 Lead Research Agent Sales Webhook Needs Perplexity

Receives a prospect's details, uses Perplexity to research their company, then writes a personalised cold outreach email. Sends the research + draft to ceo@lasa.in for review.

POST to webhook with: company, website, contact_name, contact_email, notes. Or use the Trigger button in the Console.

Review the outreach draft emailed to you. Copy the email text and send it manually to the prospect.

Perplexity API credential. Add at n8n → Credentials then activate the workflow.

POST https://lasatech.app.n8n.cloud/webhook/research-prospect
#2 Proposal Writer Sales Webhook Active

Fires when someone submits the lasa.in contact form or EXI signup form. Saves the lead to the leads CRM table, generates a personalised proposal with Claude, emails it to the lead, and notifies ceo@lasa.in.

Automatic — fires when contact form is submitted at lasa.in/contact or lasa.in/exi. Can also be triggered manually from the Console.

None required. Check ceo@lasa.in for the "New Lead" notification. Follow up with a call if the lead replies to the proposal.

In n8n → Agent #2 → "Generate Proposal" node, find [CALENDLY_LINK] in the prompt and replace with your real Calendly URL.

POST https://lasatech.app.n8n.cloud/webhook/lead-intake
#3 Lead Follow-up Sales Daily 9am Active

Every morning at 9am, reads all pending leads from the leads table. Sends a personalised follow-up to anyone not contacted in 3+ days who has had fewer than 3 follow-ups. Updates the record after each send.

Day 3: warm check-in. Day 7: re-engage with value. Day 14: polite final check-in. After 3 follow-ups, the lead is left alone.

None — fully automated. To stop follow-ups for a specific lead: go to n8n → Data Tables → leads, find the row, change status to closed or lost.

If no leads are due for follow-up, the agent runs silently and sends nothing. This is correct behaviour.

Operations — Agents 4–7

#4 Content Agent Marketing Wed 9am Active

Every Wednesday at 9am, reads the latest AI headlines, picks the most relevant topic, and writes a ready-to-publish LinkedIn post plus a blog post outline. It saves the post as a pending draft and emails you an Approve-and-Publish link.

Open the email, read the post, and click Approve and Publish to post it to the LinkedIn company page in one click (same publisher as the Daily Content agent). The blog outline below the buttons is a skeleton you can turn into a full article on lasa.in/blog.

In n8n → Agent #4 → "Read AI News Feed" node → update the RSS URL. Good sources: venturebeat.com/category/ai/feed/, techcrunch.com/category/artificial-intelligence/feed/

In n8n → Agent #4 → "Every Wednesday 9am" node → edit the schedule interval.

#5 Client Onboarding Operations Webhook Active

When a new client is confirmed, this agent saves them to the clients CRM table, sends a branded welcome email with next steps, and notifies ceo@lasa.in to schedule the kickoff call.

POST to the webhook with name, email, company, service. Or trigger from the Console with those fields filled in.

Schedule the kickoff call within 24 hours of the notification email. The welcome email has already been sent automatically.

In n8n → Agent #5 → "Send Welcome Email to Client" node → edit the message body to match your onboarding process.

POST https://lasatech.app.n8n.cloud/webhook/client-onboard
#6 Support Triage Operations Webhook Active

Receives a support ticket, classifies urgency (HIGH/LOW), writes a professional auto-reply, sends it to the client, and notifies ceo@lasa.in with the urgency flag and full context.

HIGH = data loss, billing issues, complete outage. LOW = general questions, minor bugs, how-to queries.

For HIGH urgency: call the client directly. For LOW: the auto-reply handles it. You can reply to the client from ceo@lasa.in if needed.

Add a form to lasa.in/support that POSTs to the webhook with name, email, company, subject, message fields.

POST https://lasatech.app.n8n.cloud/webhook/support-request
#7 Weekly CEO Report Operations Mon 8am Active

Every Monday at 8am, generates a plain-text CEO briefing: week summary, priorities, all 16 agent statuses, key metrics (TBD until integrations), and action items. Delivered to ceo@lasa.in.

Read it on Monday morning. The action items tell you what to focus on this week.

To show real data: connect HubSpot, Google Analytics, or your billing tool. Add HTTP Request nodes before the Claude node to fetch data, then include the data in the prompt.

In n8n → Agent #7 → "Every Monday 8am" node → edit hour/day.

SEO — Agents 8–10

#8 SEO Audit SEO Mon 7am Active

Every Monday at 7am (before the CEO report), uses Claude's web search to audit 5 lasa.in pages. Reports on title tags, meta descriptions, H1s, content quality, and internal linking. Identifies top 5 issues and 3 quick wins.

lasa.in, lasa.in/exi, lasa.in/services, lasa.in/about, lasa.in/blog

Review the email on Monday. Fix the top issues each week — typically a 30-minute task.

In n8n → Agent #8 → "Audit lasa.in SEO" node → add more URLs to the prompt text.

#9 Keyword Opportunity SEO 1st Mon/month Active

On the first Monday of each month, researches 15 keyword opportunities for lasa.in — buyer-intent keywords, long-tail opportunities, and content gaps. Sends a ranked table to ceo@lasa.in.

Pick the top 2–3 keywords each month. Brief the Content Agent or write a blog post/landing page targeting those keywords.

#10 Backlink Outreach SEO Thu 9am Needs Perplexity

Every Thursday, uses Perplexity to find 6 relevant blogs and publications that accept guest posts. Writes 3 personalised outreach emails. Sends all to ceo@lasa.in for review and manual sending.

Review the 3 outreach emails. Send the best 1–2 directly from your email. Aim to submit 2 guest posts per month.

Marketing — Agents 11–14

#11 Social Media Agent Marketing Webhook Needs LinkedIn

Receives content from Agent #4's draft email (or manual input), formats it for LinkedIn (1,300 char limit, adds hashtags), posts directly to your LinkedIn profile, and sends a confirmation to ceo@lasa.in.

After reviewing Agent #4's content draft email, trigger this agent from the Console with the approved content pasted in. Or integrate with Agent #4 to auto-post.

LinkedIn OAuth2 credential + selecting your LinkedIn profile in the "Post to LinkedIn" node after connecting.

POST https://lasatech.app.n8n.cloud/webhook/social-post
#12 Case Study Agent Marketing Webhook Active

When a project completes, generates a testimonial request email to the client and a publishable case study draft. Sends the testimonial request automatically and the full draft to ceo@lasa.in.

After a project closes, trigger from the Console with: client_name, client_email, company, project description, outcome metrics.

Wait for client testimonial reply. Once received, add the quote to the case study draft and publish at lasa.in/case-studies.

POST https://lasatech.app.n8n.cloud/webhook/case-study
#13 Newsletter Agent Marketing Bi-weekly Fri Active

Every two weeks on Friday at 10am, reads AI headlines, writes a full newsletter (This Fortnight in AI, LASA Perspective, One Thing to Try, LASA Update) and emails the draft to ceo@lasa.in.

Review, lightly edit if needed, then copy into Beehiiv or your email platform and send to your list.

To auto-send without review: connect Beehiiv API to n8n and add a node after the Claude node to post the newsletter draft automatically.

#14 Ad Copy Agent Marketing Webhook Active

Given a campaign goal, target audience, and platform, generates 5 Google Ad variants, 3 LinkedIn Ad variants, and 3 landing page headlines. Emails all variants to ceo@lasa.in.

Trigger from the Console with campaign_goal, target_audience, and platform fields. Takes about 15 seconds to generate.

Pick the best variants, A/B test in Google/LinkedIn Ads Manager. Run the agent again if you need fresh angles.

POST https://lasatech.app.n8n.cloud/webhook/ad-copy

Retention — Agents 15–16

#15 Upsell Agent Retention Daily 11am Active

Every day at 11am, checks the clients table for active clients who joined 60+ days ago and haven't received an upsell yet. Sends each a personalised upsell email, then marks upsell_sent = yes.

AI Agents bundle ($499/mo), EXI Premium, Managed IT, Custom AI development — Claude picks the most relevant based on their current service.

None — fully automated. Monitor replies to upsell emails and follow up with a call if a client shows interest.

In n8n → Agent #15 → "Daily 11am" node, edit the schedule. To change the 60-day threshold, update the Filter node condition.

#16 Churn Signal Retention Sun 8am Active

Every Sunday at 8am, reads all active clients. Finds any not contacted in 30+ days. For at-risk clients, generates a risk assessment and specific retention action per client. Sends one alert email to ceo@lasa.in.

If no clients are at risk, the agent runs silently and sends nothing. Only alerts when action is needed.

Read the Sunday alert. Take the recommended action for each at-risk client (usually a personal call or check-in message).

Default is 30 days. To change: In n8n → Agent #16 → "Filter At-Risk Clients" node → edit the rightValue from 30 to your preferred number.

Daily Content & Prospecting — Agents 17–18

#17 Daily Content Generator Marketing Daily 7am Active

Every day at 7am it picks a rotating theme, writes a LinkedIn post with Claude, saves it as a pending draft, and emails you an Approve-and-Publish link. Nothing posts until you click.

Open the email, read the post, click Approve and Publish (posts to the LASA.in company page) or Skip Today. Doing nothing leaves it unpublished. About 10 seconds a day.

Agent #17b "Publish Approved Post" handles the link click. It is triggered automatically by the email button, not on a schedule. Do not disable it or the Approve links stop working.

Images (OpenAI key), plus posting to X and Instagram, can be added once those credentials and developer apps are connected.

#18 Prospect Finder Sales Every 2 days 8am Active

Every 2 days it uses Perplexity to find new prospects: taxi and fleet operators (for EXI) and SMBs needing IT or AI (for LASA.in), with public contact details and a personalised opening line for each.

Each run targets a different market, cycling through 18 countries across Asia, the Middle East, Africa, and Western markets (India, UAE, Nigeria, USA, UK, and more). Over about 5 weeks it covers them all, then repeats. To change the list, edit the "Build Exclusion List" node in n8n.

Every prospect is saved as a full row in the "prospects" data table: company, category, website, email, phone, market, why-they-fit, and a personalised opener. View, sort, filter, or export to CSV at n8n -> Tables -> prospects. This is your growing lead list, not just email.

It remembers every company it has already found and tells Perplexity to exclude them. So each run surfaces only fresh leads, never the same companies twice. To reset, clear the prospects table in n8n.

Review the prospect email. Pick the best fits and send personalised outreach, or feed a company into Agent #1 (Lead Research) for a deeper dossier.

B2B outreach to publicly listed business contacts only. Personalise every message and include an unsubscribe option to stay PDPA-compliant. Do not mass-blast.

Schedule Reference

#AgentScheduleOutput
7Weekly CEO ReportEvery Monday 8amEmail to ceo@lasa.in
8SEO AuditEvery Monday 7amEmail to ceo@lasa.in
3Lead Follow-upEvery day 9amFollow-up emails to leads
15UpsellEvery day 11amUpsell emails to eligible clients
4Content AgentEvery Wednesday 9amApprove-link email (post + blog outline) to ceo@lasa.in
10Backlink OutreachEvery Thursday 9amEmail to ceo@lasa.in (needs Perplexity)
13NewsletterEvery 2nd Friday 10amEmail draft to ceo@lasa.in
16Churn SignalEvery Sunday 8amAlert email to ceo@lasa.in (if at-risk clients)
9Keyword Opportunity1st Monday of month 8amEmail to ceo@lasa.in
17Daily Content GeneratorEvery day 7amApprove-link email to ceo@lasa.in
18Prospect FinderEvery 2 days 8amProspect list to ceo@lasa.in

Webhook URL Reference

All webhook agents are active. POST requests with Content-Type: application/json. No authentication required on the webhook itself.
#AgentURLRequired Fields
2Proposal Writer/webhook/lead-intakename, email, company, service, message
5Client Onboarding/webhook/client-onboardname, email, company, service
6Support Triage/webhook/support-requestname, email, company, subject, message
12Case Study/webhook/case-studyclient_name, client_email, company, project, outcome
14Ad Copy/webhook/ad-copycampaign_goal, target_audience, platform
11Social Media/webhook/social-postcontent, topic
1Lead Research/webhook/research-prospectcompany, website, contact_name, contact_email, notes

Base URL: https://lasatech.app.n8n.cloud

Data Tables (CRM)

Two n8n data tables act as a lightweight CRM. View and edit them at lasatech.app.n8n.cloud → Tables.

leads table

ColumnTypeManaged ByValues
namestringAgent #2Lead's full name
emailstringAgent #2Lead's email (unique key)
companystringAgent #2Lead's company
servicestringAgent #2Service they're interested in
messagestringAgent #2Their original message
statusstringManualpending / closed / lost
last_contacteddateAgent #3Auto-updated after each follow-up
followup_countnumberAgent #30–3. Agent stops at 3.
sourcestringAgent #2contact_form

clients table

ColumnTypeManaged ByValues
name, email, company, servicestringAgent #5Client details
statusstringManualactive / paused / churned
start_datedateAgent #5When they became a client
last_interactiondateAgents #15, #6Auto-updated after any contact
upsell_sentstringAgent #15noyes after upsell sent
To mark a lead as closed: go to n8n → Tables → leads → find the row → set status to closed. Agent #3 will stop following up immediately.

Updating Agent Prompts

Every agent's AI behaviour is controlled by a prompt inside the Anthropic node. You can update any prompt without breaking the workflow.

  1. Go to lasatech.app.n8n.cloud and open the workflow you want to edit.

  2. Click the Anthropic node (the purple Claude icon) in the workflow.

  3. Find the Messages field. Click the expression icon ({}) to edit the prompt text.

  4. Edit the prompt. Keep {{ $json.fieldName }} expressions intact — they pull data from previous nodes.

  5. Click Save. The change takes effect on the next execution.

Tip: Add your Calendly link to Agent #2's prompt by replacing [CALENDLY_LINK] with your actual URL.

Adding Leads & Clients Manually

Add a lead manually

Use the Console → Agent #2 Trigger button, or POST directly to the webhook:

curl -X POST https://lasatech.app.n8n.cloud/webhook/lead-intake \ -H "Content-Type: application/json" \ -d '{"name":"John Smith","email":"john@example.com","company":"Acme","service":"AI Agents","message":"Referred by a colleague"}'

Add a client manually

Use the Console → Agent #5 Trigger button, or POST to the webhook:

curl -X POST https://lasatech.app.n8n.cloud/webhook/client-onboard \ -H "Content-Type: application/json" \ -d '{"name":"Jane Doe","email":"jane@example.com","company":"Corp Ltd","service":"EXI Platform"}'

Update a record directly

Go to n8n → Tables in the left sidebar. Click leads or clients. Find and edit any row directly. Changes take effect on the next agent run.

Troubleshooting

ProblemCauseFix
Agent shows error in n8nVariousClick the red node → read the error message. Most common: expired Gmail token or wrong API key.
Gmail token expiredOAuth2 token needs refreshn8n → Credentials → Gmail OAuth2 API → reconnect.
Claude returns empty outputmaxTokens too low or model errorCheck execution logs. Increase maxTokens in the Anthropic node options.
Email sends but content is missingMarkdown fences in Claude responseAgent prompts already include "no markdown fences" instruction. If recurring, open the Anthropic node → System message → confirm the instruction is there.
Follow-up agent sending to wrong leadsStatus field not updatedOpen n8n Tables → leads → set closed/won leads to status closed.
Agent #3/#15/#16 "table not found"Tables not yet createdRun Agent #2 once (to create leads table) and Agent #5 once (to create clients table). Or create them manually in n8n → Tables.
Webhook not triggeringWorkflow not activeIn n8n, open the workflow and toggle it Active (green). Check the webhook URL is correct.
Agent #11 not posting to LinkedInLinkedIn credential missingAdd LinkedIn OAuth2 credential in n8n → Credentials, then open Agent #11 → "Post to LinkedIn" node → select your profile from the Person dropdown.
Execution logs: Every run is logged at lasatech.app.n8n.cloud/executions. Click any row to see exactly what happened in each node.