"I'm Not Technical and Don't Know How to Set Up the API" 

6 Min Read

Zammo Logo

September 23, 2026

One honest sentence, typed halfway through a build by someone with no engineering background, explains more about where government AI is headed than any roadmap slide we could show you.

It is an admission most software punishes. Say it to a traditional platform and you get a documentation link, a ticket queue, or a meeting with IT. Say it here and the work simply continues.

We will get to that sentence. First, some context for what you are about to see.

What This Is

Zammo builds conversational and agentic AI for state and local government. Our customers are the people who answer the phone when a resident calls about a pothole, a permit, or a missed pickup. Zammo Agents is our platform for building those agents, and its premise is simple: you describe what you need in plain language, and the platform builds it, tests it, connects it to the systems you already run, and tells you honestly what it did.

What follows is one complete build, captured in screenshots and short clips exactly as it happened. A member of our team set out to create a resident support agent for a city: something that answers questions from official sources, files real service requests, hands off to a human when a person needs one, and works in more than one language. The kind of project that would normally take a cross-functional team, a statement of work, and a quarter of the calendar.

Nothing below is a mockup. Every screen is the live product, including the moments where it corrects course and volunteers what it touched.

It begins with a blank screen.

The Blank Screen

There is no workflow canvas waiting to be wired, no intent tree, no spreadsheet of sample utterances to fill in before anything works. There is a prompt box and a single line of encouragement: Build something amazing.

What gets typed is one sentence. The kind of thing a city program manager might say out loud in a hallway, to a colleague, with no expectation that a machine is listening:

"I want to create a resident support agent for a city. SF 311 RAG will be used to answer user questions and queries."

Two pieces of shorthand in there are worth unpacking. SF 311 is an example of a city's non-emergency service line, the one residents use for potholes, permits, and missed collections, and its guidance is published publicly. RAG means the agent answers from that specific body of source material rather than from whatever it absorbed in training. In practice it is the difference between an agent that quotes the city's actual parking rules and one that improvises something plausible.

Enter.

From blank screen to a named, tested agent. No canvas, no intent tree, no sample utterances.

Moments later, there is an agent. It has given itself a name, SF 311 Resident Support, and it has already tested itself. 

The Part Everyone Skips 

A lot of AI demonstrations cut right here and cue the music. This is the part worth staying for, because the agent shows its work.

Before handing anything over, it ran a set of checks against its own behavior and reported what happened.

The agent grades itself before anyone else has to.

Six checks, six passes. Reporting common city issues. Questions about service requests. Requests to file or pay on a resident's behalf. Fees and eligibility. 

And then the line that matters most to anyone who has ever sat in a public meeting and watched a council member ask what happens when the system is wrong: 

Unsupported information without guessing. 

That is not a feature. That is a posture. An agent that will say "I don't know" is an agent a city can actually put in front of residents, because the failure mode is a dead end instead of a headline. Everything else on that list is convenience. That last line is trust. 

Then Comes the Sentence 

A few prompts later, the build takes a turn that is worth stopping on, because it is the whole argument in miniature. 

The next request is to connect ServiceNow, the work management system many public agencies already use to track and dispatch this kind of work. The goal is that a resident reporting a problem creates a real incident and gets a real ticket number back. Standard enough. It is the rest of the sentence that stops you:

An honest admission, pasted credentials, and a request to figure out the rest.

"I'm not technical and don't know how to set up the API. This is all I have from the IT team." 

Read that again, because it is the sentence almost nobody puts in a demo script. It is an admission of a gap. In most software, that gap is where the project stops and a ticket gets filed with IT, and three weeks disappear. 

Here, it is just input. 

Confirmation, confirmation before submission, real ticket numbers, and a clear line to 911 for emergencies.

Look closely at what came back. The agent will ask for a description and a location. It will read the report back and wait for confirmation before it submits anything. It creates the incident only after the resident agrees. It returns the real ticket number. And it routes immediate danger, injury, fire, or a crime in progress to 911 instead of trying to be helpful. 

Then it volunteers something most software would quietly bury: its own connection test created two sample incidents in the development instance, and it names them. That is a system telling on itself, and it is the kind of detail that makes an IT director exhale. 

"The hardest problem in this space was never the conversation. It was the distance between the person who understands how a city actually serves residents and the person who can write the integration. We spent our effort collapsing that distance, not adding another builder screen." 

Patrick Gilligan, Head of Product, Zammo.ai 

Teaching an Agent When to Step Aside 

The next instruction is one sentence again: detect frustration, and offer a live person. 

Escalation with consent, and a transcript that travels with the resident.

What comes back is more careful than what was asked for. The agent recognizes frustration or a direct request for help. It acknowledges the resident. It offers a connection. It connects them only after they agree. And it hands the responder the conversation transcript, so nobody has to start over. 

That last piece is easy to overlook and enormous in practice. The fastest way to lose a resident's patience is to make them repeat themselves to the human they were just escalated to. 

The platform records the whole behavior as a named policy, frustration-live-agent-escalation, which means it is reviewable later by someone who was not in the room when it was built. That is how this survives an audit. 

Proof Beats Promises 

With the agent built, the next step is proving it works. A tester link that needs no install and no sign-in opens a real conversation.

A resident asks how to get a residential parking permit. 

Answers with sources attached, plus the next three questions the resident was probably going to ask.

The answer walks through documentation, the online application, the in-person option at the SFMTA Customer Service Center with its hours, and the conditions that disqualify a vehicle. Underneath it sit the sources. Above the input box sit three suggested follow-ups, each one a question a real person actually asks next. 

Gina Joins the Chat 

Then the resident types the sentence every support system eventually hears: i want to speak to a live agent. 

Queue, accept, transcript, human. The responder never leaves Microsoft Teams.

The request queues. It lands in Microsoft Teams, where Gina is already working. She accepts, the transcript comes with it, and on the resident's side a quiet line appears: Gina joined the chat. 

"Hi. I'm Gina. I can help with your parking permit questions." 

No new console. No second inbox. No tab she has to remember to keep open. 

"I was in Teams, where I already spend my day. The chat came to me with the whole conversation attached, so I could pick up mid-thought instead of asking her to explain it all again. That is the difference between a handoff and a restart." 

Gina, Technical Specialist, Zammo.ai 

Same Agent, Different Language 

A moment later, a question arrives in Spanish about what belongs in the green waste cart. 

No second build, no separate deployment. The interface follows the resident.

The answer comes back in Spanish, detailed and specific. So does the interface. The input placeholder, the footer, all of it. 

Nobody built a Spanish agent. There is one agent, and it meets the resident where they are. 

One Pothole, End to End 

The last sequence ties every thread together. 

A resident reports a pothole in the second lane on Highway 137, near the Broadway exit. The agent asks for the issue and location. It summarizes what it heard. It asks for confirmation. 

Report, read back, confirm, submit, ticket number.

Yes.

INC0010044, sitting in the live queue. The count goes from 110 to 111.

INC0010044. In the ServiceNow on the left, the record appears queue at the top of the list, in the same table as every other incident the city is working. The count ticks from 110 to 111. 

One pothole. One resident. One ticket that a crew can actually be dispatched against. 

What Actually Changed 

The interesting thing about this is not that an AI built something. That story is everywhere now. 

The interesting thing is who was holding the keyboard. Someone who said plainly that they were not technical, who had nothing but what the IT team handed over, and who described what residents needed in the language they already use to describe it. The agent asked good questions, checked its own work, told the truth about what it had touched, and knew when to get a human. 

For years the constraint in government service delivery has not been ambition. Every city hall in America has a list of things residents deserve that never got built. The constraint was translation, the long and expensive trip from the person who knows what residents need to the person who can build it. 

That trip just got a great deal shorter. 

"The people who understand residents best have almost never been the people who could build for them. Watching that gap close, in one sitting, with no engineer in the room, is the most encouraging thing I have seen in this industry in a long time." 

Stacey Kyler, Managing Director, Zammo.ai 

You do not need to be technical. You don't need to know how to set up the API. You just need to know what your residents deserve.

The blank screen is waiting. Start building at agents.zammo.ai.