Tilldelat.

Så bygger du en AI-agent för offentliga upphandlingar, utan kod

Av Johan Lind · Publicerad 5 september 2026 · Källor och metod

En AI-agent för upphandlingar är en instruktion du sparar i den AI-assistent ni redan använder, kopplad till ett register som assistenten får läsa. Kopplingen till Tilldelat tar några minuter och kräver ingen kod, och instruktionen skriver du på vanlig svenska. Här är sex agenter som en säljare eller anbudsansvarig kan sätta upp själv: instruktionen att klistra in, verktygen som körs och vad som kommer tillbaka.

Sidan vänder sig till den som ska använda agenten, inte till IT-avdelningen. Vad kopplingen ger och de tre stegen för Claude och ChatGPT finns på Fråga din AI, inställningar klient för klient på Koppla din AI.

Tre delar, ingen kod

Ordet agent låter som ett utvecklingsprojekt. I praktiken består en agent av tre delar, och ni har redan två av dem.

Assistenten
Claude, ChatGPT, Microsoft 365 Copilot eller en editor som Cursor. Den läser instruktionen, väljer vilket verktyg som ska köras och skriver svaret. Den ni redan har räcker.
Kopplingen
Tilldelats MCP-server, som ger assistenten nio verktyg som läser registret: sök öppna upphandlingar, sök tilldelade kontrakt, avtal som löper ut, kör en sparad bevakning, matcha företagsprofilen, hämta en upphandling, en köpare eller en leverantör i detalj, och slå upp CPV-koder och län från fritext. Verktygen heter så i instruktionerna nedan, och assistenten ser samma namn.
Instruktionen
Det som gör assistenten till en agent: en text som säger vem ni är, vad den ska göra i vilken ordning och hur svaret ska se ut. Du sparar den där assistenten sparar instruktioner, som ett projekt eller en egen agent, så att den gäller varje gång. Sparar du den inte fungerar det lika bra att klistra in texten i chatten.

Innan du börjar

  1. Koppla assistenten till Tilldelat. Tre steg, ingen nyckel att kopiera, beskrivna på Fråga din AI. Kopplingen ingår i Tilldelat Pro.
  2. Fyll i företagsprofilen under Mitt konto, om ni inte redan gjort det. Bid/no-bid-agenten bygger på den.
  3. Spara en bevakning för er bransch och era län. Säljagenten och CRM-agenten kan köra den direkt, med samma träffar som veckomejlet.
  4. Testa kopplingen med en enkel fråga: ”Vilka koder ska jag söka på för ventilation i Västra Götaland?” Svarar assistenten med CPV-kod och länskod fungerar allt.

Sex agenter att klistra in

Varje agent nedan är en instruktion, de verktyg den kör och vad som kommer tillbaka. Byt ut det som står inom hakparentes mot ert eget. Branschen i exemplen är ventilation; samma text fungerar för städning, skolskjuts eller IT-drift.

Instruktionerna är en början, inte ett facit. Anpassa dem efter hur ni arbetar: byt ordning på stegen, ta bort det ni inte behöver och lägg till era egna kriterier för när en upphandling är intressant. Det bästa resultatet får den som kör instruktionen några gånger och justerar efter svaren.

1. Säljagenten

”Vilka upphandlingar kan vi lämna anbud på just nu?”

Instruktionen

Du är säljstöd på [företagsnamn]. Vi säljer [ventilation och VVS-installation] till offentliga kunder i [Västra Götaland och Halland].

När jag ber om nya upphandlingar: slå först upp CPV-koder och länskoder med hitta_koder, sök sedan öppna upphandlingar med sok_upphandlingar. Uteslut [drift och underhåll av befintliga anläggningar].

Visa träffarna som en tabell med köpare, titel, sista anbudsdag, uppskattat värde, varför den matchar och länk (source_url). Sortera efter sista anbudsdag. Hitta inte på något som inte finns i svaret; saknas ett värde, skriv "saknas".

Verktyg som körs: hitta_koder, sok_upphandlingar

Det här får du: En lista över öppna upphandlingar där varje rad har sista anbudsdag, köpare, uppskattat värde, en motivering till varför den matchade och en länk till annonsen på tilldelat.se.

Har du redan en bevakning sparad under Mitt konto kan agenten köra den i stället, med verktyget kor_bevakning. Då får den exakt samma träffar och samma motivering som måndagsmejlet, och du slipper beskriva branschen en gång till.

2. Kundansvarig-agenten

”Vilka av våra kunder har avtal som löper ut inom tolv månader?”

Instruktionen

Hämta vår leverantörsprofil med hamta_leverantor, namn [företagsnamn].

Gå igenom tilldelningarna och lista de kontrakt vars slutdatum (contract_end_date) infaller inom tolv månader från i dag: köpare, titel, slutdatum, värde och länk. Kontrakt utan slutdatum listar du separat under rubriken "Slutdatum saknas i annonsen", utan att gissa något datum.

För varje köpare i den första listan: hämta köparen med hamta_kopare och notera om den har en öppen upphandling inom vårt område just nu.

Verktyg som körs: hamta_leverantor, hamta_kopare

Det här får du: Era egna vunna kontrakt med köpare, belopp och slutdatum, sorterade efter när de går ut, och för varje köpare vad som redan är annonserat på nytt.

Slutdatum kommer bara från annonser som anger ett. När datumet i källan är en uppskattning lämnar Tilldelat fältet tomt, så en del kontrakt hamnar i den andra listan. Det är avsiktligt: en agent ska aldrig planera ett kundbesök efter en gissning.

3. Bid/no-bid-agenten

”Vilka fem av dagens upphandlingar förtjänar vår tid?”

Instruktionen

Kör matcha_profil med limit 30. Behåll bara träffar med bedömningen Rekommenderas eller Värd att granska.

Hämta var och en av dem med hamta_upphandling och läs beskrivningen. Bedöm sedan mot våra egna krav: [vi lämnar inte anbud under 2 miljoner kronor, vi behöver minst tre veckor till sista anbudsdag, vi saknar referenser inom sjukhus].

Välj ut de fem som bäst klarar kraven och skriv för var och en: köpare, sista anbudsdag, uppskattat värde, Tilldelats motivering, vår egen bedömning i två meningar och länk. Skriv "inga passar i dag" om ingen klarar kraven.

Verktyg som körs: matcha_profil, hamta_upphandling

Det här får du: De upphandlingar som bäst passar er sparade företagsprofil, var och en med en av tre bedömningar (Rekommenderas, Värd att granska, Bevaka) och en motivering på svenska, sedan sållade mot era egna krav.

Tilldelat ger bedömningen och motiveringen; rangordningen gör assistenten utifrån de krav du skriver in. Något poängtal finns inte i svaret, och det är ett medvetet val: prioriteringen ska bygga på era spärrar, inte på en siffra ni inte kan granska. Agenten kräver att en företagsprofil finns under Mitt konto.

4. Konkurrentagenten

”Vilka vinner ventilationsupphandlingarna, och hos vem?”

Instruktionen

Sök tilldelade kontrakt med sok_tilldelningar för [ventilation] i [hela landet], sedan [2025-09-01], limit 200. Slå upp CPV-koden med hitta_koder först.

Räkna antal kontrakt och summerat värde per vinnande leverantör. Räkna bara rader som har ett belopp och ange hur många som saknar. Visa de tio största som tabell.

Hämta sedan de tre största med hamta_leverantor och sammanfatta för var och en: vilka köpare de vinner hos, vilka branscher de är verksamma i och vilka konkurrenter som vinner hos samma köpare.

Verktyg som körs: hitta_koder, sok_tilldelningar, hamta_leverantor

Det här får du: Tilldelade kontrakt med vinnande leverantör, köpare, belopp och datum, och för de största vinnarna deras kunder och de konkurrenter som vinner hos samma köpare.

Ett anrop ger högst 200 rader. Är branschen större än så, be agenten söka län för län eller kvartal för kvartal och lägga ihop.

5. VD-agenten

”Hur stor är den offentliga marknaden för ventilation, och vem tar den?”

Instruktionen

Jag vill ha en bild av den offentliga marknaden för [ventilation] i Sverige de senaste tolv månaderna.

Slå upp CPV-kod och länskoder med hitta_koder. Gör sedan en sökning per län med sok_tilldelningar (sedan [datum för tolv månader sedan], limit 200).

Summera per län: antal kontrakt, summerat värde för de rader som har belopp, andel rader utan belopp och de tre största vinnarna. Avsluta med en riksbild. Ange varje siffra som "i Tilldelats register", inte som marknadens totala storlek: direktupphandlingar under 700 000 kronor annonseras inte och ingår därför inte.

Verktyg som körs: hitta_koder, sok_tilldelningar

Det här får du: En tabell per län med antal kontrakt, summerat belopp där belopp finns och de största leverantörerna, med länk till varje kontrakt som ligger bakom siffrorna.

Summan är en undre gräns. Ramavtal saknar ofta belopp i annonsen, och köp under direktupphandlingsgränsen syns inte alls, se tröskelvärden. För antal och belopp per kategori och år finns färdiga siffror under statistik, som agenten kan citera i stället för att räkna själv.

6. CRM-agenten

”Lägg in relevanta upphandlingar i vårt CRM och ge dem till rätt säljare.”

Instruktionen

Kör min bevakning [namn eller id] med kor_bevakning.

För varje träff som inte redan finns i CRM: skapa en affärsmöjlighet med köparen som konto, upphandlingens titel som namn, sista anbudsdag som slutdatum, uppskattat värde som belopp och source_url i anteckningen.

Sätt ägare efter län: [Stockholms län till [namn], övriga län till [namn]]. Ändra aldrig befintliga poster. Avsluta med en lista över vad du skapade och vad du hoppade över, med skäl.

Verktyg som körs: kor_bevakning, och er CRM-koppling

Det här får du: Träffarna från er bevakning, med samma motivering som veckomejlet, som nya poster i ert CRM med länk tillbaka till annonsen.

Tilldelats verktyg läser bara. Skrivningen till CRM-systemet gör assistenten genom systemets egen koppling, som de flesta större CRM-system har för samma assistenter i dag, eller genom ett automationsverktyg. Ska agenten gå av sig själv varje morgon behöver ni en assistent som kan schemalägga körningar, eller ett kort skript som hämtar samma träffar som JSON via API:t. Annars är den första punkten på måndagsmötet.

Fem regler för instruktionen

Skillnaden mellan en agent som fungerar och en som gissar sitter i instruktionen. Det här är vad som skiljer instruktionerna ovan från en vanlig fråga.

  1. Berätta vem ni är, med de ord köparna använder i sina annonser. Assistenten använder dem både i koduppslaget och som sökord.
  2. Säg vilket verktyg som ska köras när. Koduppslaget först, sedan sökningen, sedan detaljerna. Utan den ordningen söker assistenten ibland på fritext där en CPV-kod hade gett ett fullständigare svar.
  3. Skriv in era egna spärrar: lägsta belopp, kortaste tid till sista anbudsdag, län ni inte åker till, referenser ni saknar. Det är dem rangordningen ska bygga på.
  4. Kräv en tabell med fasta kolumner och länk på varje rad. Varje rad ur registret har en länk. En rad utan länk har assistenten fyllt i själv.
  5. Säg vad den ska göra när svaret är tomt. ”Inga passar i dag” och ”saknas” är riktiga svar. Utan den instruktionen fyller en del assistenter ut hellre än lämnar tomt.

Begränsningar att känna till

Kom igång

Koppla assistenten enligt de tre stegen på Fråga din AI, klistra in säljagenten ovan och ställ frågan. Fungerar den, spara instruktionen som projekt eller agent och gå vidare till nästa. Vill IT-avdelningen hellre bygga en agent i Copilot Studio eller anropa registret från ett eget system finns anvisningarna på Koppla din AI och API och MCP.

Vanliga frågor

Behöver jag kunna programmera för att bygga en AI-agent på Tilldelat?

Nej. Kopplingen görs i assistentens inställningar genom att klistra in en adress och logga in, och agenten är en instruktion på svenska som du sparar i assistenten. Kod behövs först om agenten ska köras utan att någon startar den, eller om ni vill hämta datat till ett eget system; då finns samma verktyg som JSON-API.

Vilka AI-assistenter fungerar med Tilldelat?

Alla som kan koppla en MCP-server: Claude, ChatGPT, Microsoft 365 Copilot, VS Code, Cursor, Claude Code, Codex och de flesta andra. Claude är den klient Tilldelat själv kör dagligen; för de övriga följer anvisningarna respektive leverantörs dokumentation.

Kan agenten lämna anbud åt oss?

Nej. Tilldelats nio verktyg läser registret och ändrar ingenting, varken i ert konto eller hos köparen. Agenten hittar, sorterar och sammanfattar; anbudet skriver ni själva, och sista anbudsdag kontrollerar ni alltid mot annonsen.

Hur vet jag att agenten inte hittar på?

Varje rad som kommer ur registret har en länk (source_url) till sidan på tilldelat.se, och instruktionerna på den här sidan kräver länk på varje rad. En rad utan länk är ett tecken på att assistenten fyllt i själv. Be den då köra om sökningen.

Vad kostar det?

Kopplingen ingår i Tilldelat Pro, tillsammans med bevakningar och företagsprofil, och kan provas i 14 dagar utan kort. Registret är fritt att läsa på webben utan konto; det som ingår i Pro är att er egen AI får fråga det direkt.

Kan agenten skriva till vårt CRM eller skicka mejl?

Inte genom Tilldelat, som bara läser. Det gör assistenten genom CRM-systemets eller mejlens egen koppling, om ni har en sådan påslagen. Tilldelats roll i ett sådant flöde är att leverera träffarna med motivering och länk.

Källor