Section 10.7.4 : Building a mini-agent with tools
π― Learning objective
Conceptualize and prototype a mini AI agent by combining ChatGPT, Make, and external tools β without coding β to automate a complex task requiring reasoning and actions. You'll complete a guided end-to-end project: a competitive intelligence agent that monitors, analyzes, and distributes reports automatically.
The no-code agent: Make as orchestrator
You don't need Python or LangChain to create a functional agent. Make can serve as an agent orchestrator: the LLM "decides" (via the prompt), Make modules "execute," and the Make flow creates the "loop" between reflection and action.
Why a no-code agent?
- βRapid prototyping: 2h vs. 2 days in code
- βVisual: you see the execution flow, not abstract code
- βModifiable by non-developers
- βSufficient for 90% of business use cases
What a no-code agent can do:
- βReceive a request (Slack, email, form)
- βPlan the necessary actions (via the ChatGPT prompt)
- βExecute actions (search, API, email sending, data updates)
- βSynthesize results (via the ChatGPT prompt)
- βDistribute the result (email, Slack, notification)
What a no-code agent can NOT do (yet):
- βTrue iterative loops (the agent can't decide to dynamically go back)
- βDynamic tool selection (the flow is pre-defined, even if the LLM "chooses" the content)
- βSelf-correction on error (error cases must be pre-planned in the flow)
The project: automated competitive intelligence agent
We'll design an agent that:
- βReceives a question about a competitor (via Slack)
- βPlans the necessary searches (via ChatGPT)
- βSearches for information across multiple sources (Perplexity API + web)
- βAnalyzes and synthesizes into a structured report (via ChatGPT)
- βDistributes the report to the team (email + Slack)
Business value: such an agent lets a strategy team ask "What is [competitor] doing right now?" and receive a complete intelligence report in 5 minutes, instead of waiting for an analyst to do the research manually in 2-3 hours.
Agent architecture
Step-by-step implementation in Make
Step 1: Configure the Slack trigger
- βModule: Slack > Watch Messages (or Instant Message if available)
- βFilter: messages containing
@intel-agentor starting with/intel - βChannel: create a dedicated channel
#competitive-intelligence - βExtraction: the user's message is stored in
{{slack.text}}
Example message: @intel-agent What is Salesforce doing in terms of AI agents? Focus on Agentforce.
Step 2: ChatGPT β Intelligent planning
This first ChatGPT call serves as the planning "brain." The prompt must be highly structured so the JSON is usable:
You are an expert competitive intelligence agent.
The user asks: "{{slack.text}}"
Analyze this intelligence request and return a structured JSON:
{
"competitor": "[target company/product name]",
"focus_topic": "[the specific topic to investigate]",
"search_queries": [
"[query 1 β recent news]",
"[query 2 β strategic analysis]",
"[query 3 β comparison with our industry]"
],
"priority_sources": "[news, official blog, analyst reports, patents, social media]",
"internal_data_needed": true/false,
"report_type": "flash | standard | in-depth",
"urgency": "high | normal | low"
}
Criteria for search queries:
- Formulate them in English (better web results)
- Include the date or "2025-2026" for recent results
- Each query should cover a different angle
Step 3: Parse the JSON
- βModule: JSON > Parse JSON β stores the result in usable variables
- βNow you have access to
{{json.competitor}},{{json.search_queries}}, etc.
Step 4: Multi-source research
Option A β Iterator + Perplexity API:
- βModule: Iterator β iterates over
{{json.search_queries}}(the 3 queries) - βFor each query, module: HTTP > Make a Request
- βURL:
https://api.perplexity.ai/chat/completions - βMethod: POST
- βBody:
{"model": "sonar-pro", "messages": [{"role": "user", "content": "{{iterator.value}}"}]} - βHeaders:
Authorization: Bearer YOUR_API_KEY
- βURL:
- βModule: Aggregator β compiles the 3 results into a single text
Option B β Without Perplexity API (free alternative):
- βModule: HTTP > Make a Request to Google Custom Search API or SerpAPI
- βOr: Module Google Sheets > Search Rows for historical internal data
Step 5: ChatGPT β Synthesis and report
The second ChatGPT call is the "analytical core" β it transforms raw data into intelligence:
You are a competitive intelligence analyst. You write intelligence reports
for the executive committee.
Competitor analyzed: {{json.competitor}}
Focus topic: {{json.focus_topic}}
Research results:
{{aggregator.result}}
Write a {{json.report_type}} intelligence report:
## π Executive Summary (3 lines max)
[Hard-hitting summary for a busy decision-maker]
## π° Recent News (last 7 days)
[Dated bullet points, with source in parentheses]
## π― Identified Strategic Moves
[Analysis of competitor actions: new products, partnerships, hires, funding rounds]
## β οΈ Risks and Implications for Us
[How do these moves impact our positioning? What risks?]
## π¬ Recommended Actions
[3 concrete actions for our team, prioritized by urgency]
## π Threat Score: [1-10]
[Score with justification]
Tone: analytical, factual, decision-oriented. No vague formulas.
Cite the source for EVERY factual piece of information.
If information is not confirmed by sources, flag it as "unverified."
Step 6: Report distribution
Branch 1 β Email (full report):
- βModule: Gmail > Send an Email
- βTo: strategy-team@company.com (or a list from Google Sheets)
- βSubject:
π Intel {{json.competitor}} β {{json.focus_topic}} ({{json.urgency}}) - βBody: the full report generated by ChatGPT
Branch 2 β Slack (summary):
- βModule: Slack > Post a message
- βChannel:
#competitive-intelligence - βMessage: only the Executive Summary + Threat Score + link to the full email
Step 7: Archival and tracking
- βModule: Google Sheets > Add a Row
- βSpreadsheet: "Competitive Intelligence History"
- βColumns: Date, Competitor, Topic, Threat Score, Summary, Requester
This tracking enables:
- βSeeing a competitor's evolution over time
- βIdentifying recurring intelligence topics
- βMeasuring the agent's ROI (number of queries processed, time saved)
Testing and verification
Before deploying, test with 3 scenarios:
Test 1 (simple request): @intel-agent What are Notion's latest updates this week?
β Expected: flash report, 1-2 news items, low threat score
Test 2 (complex request): @intel-agent Analyze Microsoft's AI strategy for 2026. Focus on Copilot and agents. In-depth report.
β Expected: in-depth report, multiple sources, strategic analysis
Test 3 (ambiguous request): @intel-agent What's going on with Google?
β Expected: the planning module should identify "Google" and formulate relevant queries despite the vague request
Validation checklist:
- β The planning JSON is valid (no parsing errors)
- β The 3 search queries are relevant and diversified
- β The report is structured according to the requested template
- β Sources are cited
- β The email sends correctly with readable formatting
- β The Slack message is concise (summary, not full report)
- β Google Sheet is updated
Limitations and future directions
What this agent does well:
- βProcesses an intelligence request in 5 minutes (vs. 2-3 hours manually)
- βStructured and actionable output every time
- βSearchable history in Google Sheets
- βTriggerable by anyone on the team via Slack
Its limitations:
- βReasoning is "one-shot": it follows the flow linearly (no true iterative loop)
- βIt can't dynamically decide to add a source if results are insufficient
- βAPI errors (Perplexity down, rate limit) require error handling (Error handler module in Make)
- βQuality depends heavily on the synthesis prompt quality
To go further (with code):
| Framework | Language | Use case | Complexity |
|---|---|---|---|
| LangChain / LangGraph | Python | Agents with reasoning loops, dynamic tools | Intermediate |
| CrewAI | Python | Collaborative multi-agents (e.g., one researcher + one writer + one editor) | Intermediate |
| AutoGen (Microsoft) | Python | Conversational agents, discussion simulation | Advanced |
| Claude Computer Use | API | Agent that controls mouse and keyboard on your computer | Advanced |
| OpenAI Assistants API | API | Agents with code interpreter, function calling, file search | Intermediate |
| Anthropic MCP | Protocol | Unified protocol for connecting tools to any LLM | Intermediate |
Why is Make a good tool for prototyping an AI agent without coding?
What is the main limitation of a no-code AI agent (Make + ChatGPT) compared to a coded agent (LangChain, CrewAI)?
Learn AI, from prompts to agents