Conduit
Hospitality

How to Turn Guest Messages Into Maintenance Tasks

October 11, 20269 min read
Conduit

Messages to Maintenance

Turn guest repair requests into tasks

Hand tools, a ruler and wood shavings spread across a pale wooden workbench.

Written by Punn Kam, ex-Google AI engineer and Y Combinator repeat founder. He is the co-founder of Conduit, an AI agent platform built for hospitality, serving 300+ hospitality brands in 140+ languages. Last updated October 7, 2026.

To turn guest messages into maintenance tasks, classify each message as a repair request, match it to the property and reservation, attach the guest's photos, assign the person who covers that property for that kind of work, tell the guest what happens next, and message them again when the task closes. Every tool between the inbox and the task board adds a step someone carries by hand.

Which guest messages should become maintenance tasks?

A guest message should become a maintenance task when it reports something physical that someone has to go and fix: a leak, a dead appliance, a broken lock, no hot water, pests, a smell. Questions about the Wi-Fi password or parking need no task, and neither does a complaint the guest wants answered rather than repaired.

Classify the message by what it means, since the words can mislead. "The shower is fine now" contains "shower" and needs nothing. "Water is coming through the ceiling downstairs" never says "leak" and is the most urgent message of the week. An AI agent that reads the whole conversation can make that call, and it can ask a follow-up ("Is the water still running?") before deciding, which a keyword rule can't do.

Decide two things up front. First, the categories you dispatch differently (plumbing, electrical, appliances, HVAC, locks, pests, cleaning). Second, what counts as urgent. Urgency decides who gets the task, how fast, and what the guest is told.

How do you match the task to the right property and reservation?

A maintenance task needs the property, the unit, and the reservation attached, because the technician needs the address and access details and the manager needs to know whose stay was affected. When the task is created inside the system that holds the conversation, the match is already there: the guest is linked to a reservation, and the reservation to a listing.

When the task is created in a separate tool over an API, someone has to map the messaging tool's property and reservation IDs to the task tool's IDs and keep that mapping current as listings change. Turno's external API, for example, creates a problem report from a property_id, with an optional title and description. That works, but every property has to exist on both sides with matching IDs, and the reservation link has to travel some other way. When the mapping drifts, technicians end up at the right building and the wrong unit.

How do you get the guest's photos onto the task?

The guest's photo is usually the most useful thing on a maintenance task, and it is the first thing lost between tools. A photo of the error code on the dishwasher tells the technician which part to bring. A photo of the ceiling stain shows whether it's a drip or a burst pipe.

Conduit attaches the guest's photos from the conversation to the task it creates, linked to the property and the reservation. Conduit tasks hold photos, receipts, and checklists, not video files, so when a guest sends a video, ask for a still or write what it shows into the task description.

Other tools take media through their APIs in different ways. Breezeway accepts photos on an existing task through a separate Add Task Photo endpoint. Operto Teams accepts images at creation through tasksWithImage. Turno's API lets a partner create a project or a problem, and I found no endpoint for uploading a photo to either. If your integration doesn't carry media across, set a rule for your team: nobody closes the guest conversation until the photos are on the task.

Who should the task go to?

A maintenance task should go to the person who covers that property for that category of work, with a fallback when they don't respond. Write that routing down before you automate it: who handles plumbing at the downtown buildings, who covers lockouts after 10pm, which repairs need owner approval before anyone is dispatched.

Conduit assigns from defaults you set per property and task category, such as a preferred assignee on each checklist. It doesn't match on skills or route by distance, so the judgment about who is right for a job goes into those defaults. The assignee gets a work order by SMS or email with accept and decline links. A decline clears the assignment so the task surfaces for reassignment, and reassigning expires the earlier link so two people don't both show up. The dispatch how-to covers this step in detail.

What should the guest hear after the task is created?

The guest should hear, within minutes, that the issue is logged and what happens next, in plain terms they can plan around. "Thanks for the photo. I've sent this to our maintenance technician and will update you as soon as they confirm a time" beats silence, and it beats an arrival time nobody has confirmed.

Don't promise a time the technician hasn't given. If the guest needs to be home, or needs to step out, say so. If the issue makes the unit unusable (no heat in winter, no water), the message should also say what you're doing about it tonight, whether that's a space heater, a move to another unit, or a partial refund.

How do you close the loop when the work is done?

Closing the loop means the guest hears the repair is finished without a person on your team relaying the update. That depends on the task system sending an event, such as a status change or a completion, that the messaging side can act on.

Conduit fires triggers when a task is created, assigned, changes status, or is completed, and each one can run an agent or a workflow that messages the guest on the linked reservation. A separate task tool has to publish its own events, and someone has to wire them to messages. The guest update how-to compares the task events Breezeway and Turno publish and walks through the messages worth sending at each stage.

What goes wrong when messages and tasks live in separate tools?

Separate messaging and task tools break the maintenance loop in four predictable places. Which ones you hit depends mostly on the integration between the two tools, and on how much of the gap a person on your team patches by hand.

  1. The task is thin. The integration copies the message text and drops the photos, the reservation, and what the AI understood from the conversation.
  2. The task points at the wrong unit. Property IDs drift between the two systems as listings are added or renamed.
  3. Tasks get duplicated. The guest sends three messages about the same leak, and each one creates a task.
  4. The guest hears nothing. The technician closes the task, and the next message you get from the guest is a review.

The first three are integration work. The fourth shows up in reviews, so fix it first.

How do the main tools compare on message-to-task?

The table below compares six tools on the three steps that matter most when a guest message becomes a maintenance task: creating the task, getting the guest's media onto it, and exposing task events the messaging side can act on. Each cell comes from the vendor's own page or developer docs, opened October 2026. "Not published" means I couldn't find it on their pages; the feature may still exist.

ToolTask from a guest messageGuest media on the taskTask events for guest updates
ConduitAgent creates it in the same system as the conversationPhotos from the conversation attach to the taskTask created, assigned, status changed, and completed triggers run agents or workflows
GuestyMessage to Task Dispatcher agent creates operational tasksNot publishedNot published
BreezewayConcierge suggests the task that closes the loopAdd Task Photo API endpointTask webhooks
AkiaSkill files a task with the room and the issueNot publishedMessages the guest once the task is marked done
Operto TeamsVia APItasksWithImage API endpointNone listed in the API reference
TurnoVia API (create problem or project)No upload endpoint foundCompletion webhook only

Several of these tools now create tasks from messages, so the media and event columns are where they differ. For a wider look at operations platforms, see the best hospitality operations platforms and our Operto review.

Should you move tasks into the same system as messaging?

Moving tasks into the same system as messaging removes the mapping, media, and event work described above, and it's the setup I'd pick for a team that loses hours relaying updates. If your current task tool works and your team knows it, keep it, connect it to your messaging, and cover the gaps with rules.

Conduit's Full Suite package, at $48 per unit per month, adds tasks and workforce, scheduling and dispatch, agentic operations workflows, and inventory management to everything in Guest + Devices (see pricing). Conduit agents can also create tasks in Breezeway if you'd rather keep it. The longer argument for running both together is in guest messaging and operations in one system.

FAQ

Property managers and hotel teams setting up a message-to-task flow tend to ask the questions below, from whether AI can create the task to how the guest hears the repair is done. Each answer stands alone, so you can jump to the one that matches the step you're on.

Can AI create maintenance tasks from guest messages automatically?

Yes, AI can create maintenance tasks from guest messages when it reads the whole conversation instead of matching keywords. Conduit, Guesty's Message to Task Dispatcher, and Akia's task skills all create tasks from guest messages; they differ in what the task carries and what happens after it's created.

How do I attach a guest's photo to a maintenance task?

Attach the guest's photo when the task is created, from the conversation it arrived in. Conduit attaches photos from the conversation to the task. With a separate task tool, the integration has to upload each file through that tool's API, and some APIs have no photo endpoint.

How do I stop duplicate tasks when a guest sends several messages?

Check for an open task on the same reservation and category before creating a new one. If an agent creates your tasks, put that check in its instructions so follow-up messages and photos go onto the open task.

Who should receive a maintenance task created from a guest message?

The person who covers that property for that category of work should receive it, with a named fallback if they decline. In Conduit that is the default assignee you set per property and task category.

How do I tell the guest when the repair is finished?

Trigger the message from the task itself. In Conduit, the task completed trigger can run a workflow or an agent that messages the guest on the linked reservation. With a separate task tool, you need its completion webhook and a rule on the messaging side.

Do I need to replace my task management tool to do this?

No. You can keep a dedicated task tool and connect it to your messaging. Expect thinner tasks and more manual guest updates, depending on what that tool's API accepts and which events it publishes.

Punn Kam
Punn Kam Co-Founder

Stay in the loop

Get the latest on AI automation, product updates, and customer stories.