atmon docs

REFERENCE/TOOLKITS/FRONT.MD

Front

Shared team inbox. Read and reply to email and chat threads, assign, tag, snooze, comment internally, and keep contacts current.

PropertyValue
Slugfront
Definition version0.1.0
Base URLhttps://api2.frontapp.com
Auth schemesapi_key
Action tools39
By class15 read, 19 write, 5 destructive
Triggers0
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

55 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 39 cases written by hand and 16 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-128/5550.9%
top-851/5592.7%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

api_key

PropertyValue
Placementheader
NameAuthorization
Rendered asBearer {key}

Submit the key with ConnectionsService rather than putting it in a request; it is sealed at rest and never returned.

Tools

39 action tools. The catalog-wide slug is front.<tool>, which is what search_tools returns and call_tool takes.

front.list_conversations

List conversations across every Front shared inbox the connected account can see, newest activity first, paginated. Use to browse or export conversations rather than look for one specific ticket or thread. For conversations in one inbox only, use list_inbox_conversations; to search by keyword, use search_conversations.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /conversations.

Arguments:

ArgumentTypeRequiredNotes
limitintegernoMaximum results per page, up to 100. Default 50.
page_tokenstringnoPagination cursor from a previous page's next_page_token.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversationsarray of object
conversations[].assigneeobject
conversations[].assignee.emailstring
conversations[].assignee.idstring
conversations[].created_atstring (date-time)
conversations[].idstring
conversations[].last_message_blurbstring
conversations[].statusstring
conversations[].subjectstring
conversations[].tagsarray of object
conversations[].tags[].idstring
conversations[].tags[].namestring
next_page_tokenstring

Also retrieved by: "show me what's come in across every inbox", "pull up recent tickets from all our shared inboxes", "what's been happening across support lately", "give me a rundown of everything in the queue", "browse everything that's come through recently".

front.get_conversation

Get one Front conversation's full detail by id: subject, status, assignee, tags, and the inbox it lives in. Use when the user names or links a specific ticket or thread. For the messages inside it, use list_conversation_messages.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id, e.g. "cnv_55c8c149".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
assigneeobject
assignee.emailstring
assignee.idstring
created_atstring (date-time)
idstring
inboxobject
inbox.idstring
inbox.namestring
statusstring
subjectstring
tagsarray of object
tags[].idstring
tags[].namestring

Also retrieved by: "pull up the details on that ticket", "what's the status on this customer's thread", "open the one about the refund request", "show me everything on that support case", "who's this assigned to right now".

front.search_conversations

Search Front conversations across every shared inbox by keyword, sender, or an operator such as from: or tag:. Use when the user wants to find a ticket or thread and does not know which inbox it is in. For simply browsing recent activity with no keyword, use list_conversations instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /conversations/search/{{params.query}}.

Arguments:

ArgumentTypeRequiredNotes
limitintegernoMaximum results per page, up to 100. Default 50.
page_tokenstringnoPagination cursor from a previous page's next_page_token.
querystringyesSearch terms, with optional operators, e.g. "refund from:jane@acme.com".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversationsarray of object
conversations[].idstring
conversations[].last_message_blurbstring
conversations[].statusstring
conversations[].subjectstring
next_page_tokenstring

Also retrieved by: "find where the customer mentioned the broken login", "dig up the thread about the billing complaint", "look for every message from one sender's address", "track down that ticket I can't remember the inbox for", "hunt through everything for the word "refund"".

front.archive_conversation

Archive a Front conversation, closing it out of the team's active queue. Use when the user wants to close, resolve, or archive a ticket or thread. History and replies stay intact, and reopen_conversation reverses it. Not for removing it entirely; for that use delete_conversation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to archive.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
statusstring

Also retrieved by: "close this one out, it's handled", "mark this ticket as resolved", "wrap up this thread, we're done here", "file this one away", "clear this out of my queue".

front.reopen_conversation

Reopen a Front conversation that was archived, deleted, or marked spam, putting it back in the active queue. Use when the user wants to reopen, restore, or bring back a closed ticket or thread. The opposite of archive_conversation, delete_conversation, and mark_conversation_spam.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to reopen.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
statusstring

Also retrieved by: "bring this ticket back, the customer replied again", "pull this one out of the trash", "undo the archive on this thread", "put this back in the active queue", "the customer wrote back, put it back on my plate".

front.delete_conversation

Move a Front conversation to trash. Use when the user wants to delete, trash, or get rid of a ticket or thread entirely, not just close it. Recoverable only with reopen_conversation before the workspace's trash retention expires.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls PATCH /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
statusstring

Also retrieved by: "get rid of this ticket for good", "this is junk, trash it", "remove this thread entirely", "throw this one out", "purge this from the inbox".

front.mark_conversation_spam

Mark a Front conversation as spam, pulling it out of the team's normal queue and history. Use when the user wants to flag a ticket or thread as spam or junk. reopen_conversation is the only way back.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls PATCH /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to mark as spam.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
statusstring

Also retrieved by: "this is obviously junk mail, flag it", "send this to junk", "this looks like a phishing attempt, flag it", "this isn't a real customer, mark it as such", "this is unsolicited garbage, get it out of the queue".

front.snooze_conversation

Snooze a Front conversation until a chosen time, hiding it from the active queue until then. Use when the user wants to snooze, defer, or come back to a ticket or thread later rather than close it now.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to snooze.
snoozed_untilintegeryesUnix timestamp (seconds) for when the conversation reappears, e.g. 1785312000.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
snoozed_untilinteger
statusstring

Also retrieved by: "remind me about this next Monday", "I'll deal with this later, hide it for now", "bump this to tomorrow morning", "put this on hold until Friday", "don't show me this until next week".

front.assign_conversation

Assign a Front conversation to a teammate, or clear its assignment. Use when the user wants to assign, hand off, or unassign a ticket or thread. Pass an empty teammate_id to unassign.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to assign.
teammate_idstringnoTeammate id to assign to, e.g. "tea_1a2b3c". Empty or omitted clears the current assignment.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
assigneeobject
assignee.emailstring
assignee.idstring
idstring

Also retrieved by: "hand this ticket off to Priya", "give this one to the billing specialist", "put this on someone else's plate", "take this off my list, nobody's on it now", "route this to whoever handles refunds".

front.add_conversation_followers

Add one or more teammates as followers of a Front conversation so they get notified of its activity without being the assignee. Use when the user wants to loop someone in, cc a teammate, or add a watcher to a ticket or thread.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /conversations/{{params.conversation_id}}/followers.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to add followers to.
teammate_idsarray of stringyesTeammate ids to add as followers, e.g. ["tea_1a2b3c"].

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
followersarray of object
followers[].emailstring
followers[].idstring

Also retrieved by: "loop my manager into this thread", "cc the engineering lead on this one", "let a couple more teammates keep an eye on this", "add someone else to watch this ticket", "bring another person into the loop here".

front.remove_conversation_follower

Remove one teammate as a follower of a Front conversation, stopping their notifications on it. Use when the user wants to unwatch, remove a watcher, or stop looping someone in on a ticket or thread. Does not affect the assignee.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls DELETE /conversations/{{params.conversation_id}}/followers/{{params.teammate_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to remove the follower from.
teammate_idstringyesTeammate id to remove as a follower, e.g. "tea_1a2b3c".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
teammate_idstring

Also retrieved by: "take Sam off the watch list for this one", "stop notifying that teammate about this thread", "he doesn't need to see this ticket anymore", "drop her from the followers here", "quiet the notifications for one person on this".

front.list_conversation_followers

List the teammates following a Front conversation, including the assignee if set. Use when the user asks who is watching, cc'd, or looped into a ticket or thread.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /conversations/{{params.conversation_id}}/followers.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to list followers of.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
followersarray of object
followers[].emailstring
followers[].idstring

Also retrieved by: "who's keeping an eye on this ticket", "who else got looped into this thread", "see everyone watching this one", "who's cc'd on this case", "show me who's paying attention to this".

front.apply_tags_to_conversation

Apply one or more tags to a Front conversation for categorization. Use when the user wants to tag, label, or categorize a ticket or thread. Resolve tag ids with list_tags first. To take a tag off, use remove_tag_from_conversation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /conversations/{{params.conversation_id}}/tags.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to tag.
tag_idsarray of stringyesTag ids to apply, e.g. ["tag_9f8e7d6c"].

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
tagsarray of object
tags[].idstring
tags[].namestring

Also retrieved by: "label this as a billing issue", "stick the urgent label on this ticket", "categorize this under bugs", "put the VIP label on this thread", "mark this with the refund category".

front.remove_tag_from_conversation

Remove one or more tags from a Front conversation without touching its status or assignment. Use when the user wants to untag, unlabel, or take a category off a ticket or thread. To add tags, use apply_tags_to_conversation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls DELETE /conversations/{{params.conversation_id}}/tags.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to untag.
tag_idsarray of stringyesTag ids to remove, e.g. ["tag_9f8e7d6c"].

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
tagsarray of object
tags[].idstring
tags[].namestring

Also retrieved by: "take the urgent label off this one", "this isn't a bug anymore, drop that category", "clear the billing label from this thread", "this ticket doesn't need that tag anymore", "untag this from VIP".

front.move_conversation_to_inbox

Move a Front conversation into a different shared inbox. Use when the user wants to move, transfer, or reroute a ticket or thread to another team's inbox. Resolve the target inbox id with list_inboxes.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to move.
inbox_idstringyesDestination inbox id, e.g. "inb_a1b2c3".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
inboxobject
inbox.idstring
inbox.namestring

Also retrieved by: "this belongs in billing, not support", "send this over to the engineering queue", "transfer this ticket to another team", "reroute this to a different inbox", "this landed in the wrong queue, move it".

front.get_message

Get one message from a Front shared-inbox ticket by id: its body, sender, recipients, and which conversation it belongs to. Use when the user references a specific message inside a Front support ticket or thread, not a personal Gmail or Outlook email. For every message in a conversation, use list_conversation_messages.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /messages/{{params.message_id}}.

Arguments:

ArgumentTypeRequiredNotes
message_idstringyesFront message id, e.g. "msg_1ab2c3d4".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
authorobject
author.emailstring
bodystring
conversation_idstring
created_atstring (date-time)
idstring
subjectstring
toarray of string

Also retrieved by: "pull up that one email by itself from the support ticket", "show me just that single reply on this Front thread", "open the exact message someone sent in this shared inbox", "what did that specific note in the ticket actually say", "get me the raw text of that one message in the shared inbox".

front.list_conversation_messages

List the messages inside a Front conversation, in order, including inbound email and outbound replies. Use when the user wants to read, catch up on, or summarize a ticket or thread's message history. Not internal notes; for those use list_conversation_comments.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /conversations/{{params.conversation_id}}/messages.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to list messages from.
limitintegernoMaximum results per page, up to 100. Default 50.
page_tokenstringnoPagination cursor from a previous page's next_page_token.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
messagesarray of object
messages[].authorobject
messages[].author.emailstring
messages[].bodystring
messages[].created_atstring (date-time)
messages[].idstring
messages[].subjectstring
next_page_tokenstring

Also retrieved by: "what's the back and forth been on this ticket", "show me every email exchanged on this thread", "catch me up on the whole conversation history", "what has the customer actually said so far", "read through everything sent on this case".

front.send_message

Reply to an existing Front conversation with a new message, sent immediately through the conversation's own channel. Use when the user wants to reply, respond, or answer a customer in an open ticket or thread. To start a brand-new conversation instead, use create_conversation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /conversations/{{params.conversation_id}}/messages.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesReply body. Plain text or HTML depending on the channel.
channel_idstringnoChannel id to send through, when the inbox has more than one. Optional; defaults to the conversation's own channel.
conversation_idstringyesFront conversation id to reply in.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
created_atstring (date-time)
idstring

Also retrieved by: "write back to the customer now", "answer this ticket right away", "respond to them saying we're looking into it", "fire off a reply to this thread", "tell the customer their refund is processed".

front.create_conversation

Send a new outbound message through a Front channel to start a brand-new conversation, rather than replying to one that exists. Use when the user wants to email or message someone for the first time from Front. To reply inside an existing ticket or thread, use send_message.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /channels/{{params.channel_id}}/messages.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesMessage body. Plain text or HTML depending on the channel.
channel_idstringyesFront channel id to send from, e.g. "cha_1a2b3c".
subjectstringnoSubject line, for channels that use one.
toarray of stringyesRecipient addresses or handles, e.g. ["jane@acme.com"].

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
created_atstring (date-time)
idstring

Also retrieved by: "email this customer for the first time", "kick off a new thread with a prospect", "reach out to someone who hasn't contacted us before", "start a fresh email to a new lead", "send the first message to open this relationship".

front.list_conversation_comments

List the internal comments on a Front conversation: teammate notes that never go to the customer. Use when the user wants to read the internal discussion on a ticket or thread. Not customer-facing messages; for those use list_conversation_messages.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /conversations/{{params.conversation_id}}/comments.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to list comments from.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
commentsarray of object
comments[].authorobject
comments[].author.emailstring
comments[].author.idstring
comments[].bodystring
comments[].created_atstring (date-time)
comments[].idstring

Also retrieved by: "what have my teammates said internally about this", "show me the internal notes on this ticket", "what's the team chatter behind the scenes here", "read the private discussion on this case", "see what colleagues wrote that the customer never saw".

front.add_comment

Post an internal comment on a Front conversation, visible only to teammates and never sent to the customer. Use when the user wants to leave a note, flag something internally, or loop in a colleague without replying to the customer. For a customer-facing reply, use send_message.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /conversations/{{params.conversation_id}}/comments.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesComment text.
conversation_idstringyesFront conversation id to comment on.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
created_atstring (date-time)
idstring

Also retrieved by: "leave a private note for the team on this", "flag this internally before I reply", "jot down a heads up for whoever picks this up next", "tell the team something without the customer seeing it", "drop an internal note about the account history".

front.create_draft

Save a draft reply inside an existing Front conversation without sending it. Use when the user wants to draft, prepare, or write a reply for later review or a teammate's approval before it goes out. For a fresh draft not tied to any conversation, use create_channel_draft. To send now instead, use send_message.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /conversations/{{params.conversation_id}}/drafts.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesDraft body. Plain text or HTML depending on the channel.
channel_idstringnoChannel id to draft through, when the inbox has more than one. Optional; defaults to the conversation's own channel.
conversation_idstringyesFront conversation id to draft a reply in.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
idstring
is_draftboolean

Also retrieved by: "write up a reply but don't send it yet", "prepare an answer for my manager to check first", "get a response ready for approval", "draft something up so I can review the wording later", "queue a reply that needs a second pair of eyes".

front.create_channel_draft

Save a fresh outbound draft from a Front channel, not tied to any existing conversation. Use when the user wants to prepare a new email or message to send later rather than reply to something already open. For a draft reply inside an open ticket or thread, use create_draft.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /channels/{{params.channel_id}}/drafts.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesDraft body. Plain text or HTML depending on the channel.
channel_idstringyesFront channel id to draft from, e.g. "cha_1a2b3c".
subjectstringnoSubject line, for channels that use one.
toarray of stringnoRecipient addresses or handles, e.g. ["jane@acme.com"].

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversation_idstring
idstring
is_draftboolean

Also retrieved by: "start writing an email to a new customer, save it for later", "prep an outbound note I haven't sent to anyone yet", "stage a fresh message before it becomes a real thread", "write something up before it's even a conversation", "hold onto this outbound note until I'm ready".

front.list_drafts

List the unsent drafts saved on a Front conversation. Use when the user wants to see what draft replies are waiting for review or approval before going out.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /conversations/{{params.conversation_id}}/drafts.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id to list drafts from.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
draftsarray of object
drafts[].authorobject
drafts[].author.emailstring
drafts[].bodystring
drafts[].created_atstring (date-time)
drafts[].idstring

Also retrieved by: "what's sitting unsent on this ticket", "show me what's waiting for approval before it goes out", "see what replies are queued up but not sent", "what's still pending review on this thread", "check what hasn't gone out yet here".

front.update_draft

Edit the body or recipients of an unsent Front draft. Use when the user wants to revise, fix, or update a draft reply before it goes out. Only works while the draft is still unsent; a sent message cannot be edited this way.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /conversations/{{params.conversation_id}}/drafts/{{params.draft_id}}.

Arguments:

ArgumentTypeRequiredNotes
bodystringnoReplacement draft body.
conversation_idstringyesFront conversation id containing the draft.
draft_idstringyesDraft's message id, e.g. "msg_1ab2c3d4".
toarray of stringnoReplacement recipient list.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
bodystring
idstring

Also retrieved by: "fix the wording in that unsent reply", "change what I wrote before it goes out", "tweak the pending response", "reword the draft before we send it", "clean up that unsent note".

front.delete_draft

Delete an unsent Front draft permanently. Use when the user wants to discard, scrap, or throw away a draft reply instead of sending or editing it. Cannot be undone once deleted.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /conversations/{{params.conversation_id}}/drafts/{{params.draft_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idstringyesFront conversation id containing the draft.
draft_idstringyesDraft's message id to delete, e.g. "msg_1ab2c3d4".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "scrap that unsent reply, I don't want to send it", "throw away the draft, never mind", "get rid of that pending response", "discard what I started writing", "toss that unsent note".

front.list_tags

List every tag defined in the Front workspace, with ids, names, and highlight colors. Use to browse available tags or resolve a tag name to the id needed by apply_tags_to_conversation.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /tags.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
tagsarray of object
tags[].highlightstring
tags[].idstring
tags[].namestring

Also retrieved by: "what labels do we have set up", "show me every category available", "browse the tag list", "what can I categorize things as", "see all the labels in the workspace".

front.create_tag

Create a new tag in the Front workspace for categorizing conversations. Use when the user wants to add, make, or set up a new tag or label. Optional highlight color. To put it on a ticket or thread, follow with apply_tags_to_conversation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /tags.

Arguments:

ArgumentTypeRequiredNotes
highlightstringnoOptional highlight color name, e.g. "red", "blue", "green".
namestringyesTag name, e.g. "Billing".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
highlightstring
idstring
namestring

Also retrieved by: "set up a new label for shipping delays", "make a category for VIP customers", "add a fresh tag we can use going forward", "I need a new label that doesn't exist yet", "build out a category for refund requests".

front.update_tag

Rename a Front tag or change its highlight color. Use when the user wants to rename, recolor, or edit an existing tag or label itself, not add or remove it from one ticket. For that narrower action, use apply_tags_to_conversation or remove_tag_from_conversation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /tags/{{params.tag_id}}.

Arguments:

ArgumentTypeRequiredNotes
highlightstringnoNew highlight color name.
namestringnoNew tag name.
tag_idstringyesFront tag id to update, e.g. "tag_9f8e7d6c".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
highlightstring
idstring
namestring

Also retrieved by: "rename that label to something clearer", "change the color on the urgent tag", "fix the wording on one of our categories", "give that label a new color", "edit the name of an existing category".

front.delete_tag

Permanently delete a tag from the Front workspace, removing it from every conversation carrying it. Use when the user wants to delete or get rid of a tag or label entirely, not just take it off one ticket. For that narrower action, use remove_tag_from_conversation.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /tags/{{params.tag_id}}.

Arguments:

ArgumentTypeRequiredNotes
tag_idstringyesFront tag id to delete, e.g. "tag_9f8e7d6c".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "get rid of a label we don't use anymore", "remove that category from the workspace entirely", "clean up an old tag nobody uses", "erase that label for good, everywhere", "retire a category we're done with".

front.list_inboxes

List every shared inbox in the Front workspace, with ids and names. Use to browse available inboxes or resolve an inbox name to the id needed by move_conversation_to_inbox or list_inbox_conversations.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /inboxes.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
inboxesarray of object
inboxes[].idstring
inboxes[].namestring

Also retrieved by: "what shared inboxes do we have set up", "show me every team queue that exists", "browse all the inboxes in the workspace", "what queues are available here", "see every shared mailbox we've got".

front.get_inbox

Get details about one Front shared inbox by id: its name and the channels feeding it. Use when the user asks about a specific inbox. For the conversations sitting inside it, use list_inbox_conversations.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /inboxes/{{params.inbox_id}}.

Arguments:

ArgumentTypeRequiredNotes
inbox_idstringyesFront inbox id, e.g. "inb_a1b2c3".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
namestring

Also retrieved by: "tell me about the billing queue", "what channels feed into support", "give me details on one specific inbox", "how is this particular queue set up", "what's this shared mailbox actually for".

front.list_inbox_conversations

List the conversations sitting in one specific Front shared inbox, newest activity first. Use when the user names a particular inbox or team's queue, such as "support" or "billing". For conversations across every inbox at once, use list_conversations.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /inboxes/{{params.inbox_id}}/conversations.

Arguments:

ArgumentTypeRequiredNotes
inbox_idstringyesFront inbox id to list conversations from.
limitintegernoMaximum results per page, up to 100. Default 50.
page_tokenstringnoPagination cursor from a previous page's next_page_token.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversationsarray of object
conversations[].idstring
conversations[].last_message_blurbstring
conversations[].statusstring
conversations[].subjectstring
next_page_tokenstring

Also retrieved by: "what's sitting in the billing queue right now", "show me everything in the support inbox", "pull up the tickets for one specific team", "what's come into that particular queue lately", "browse just the sales inbox".

front.list_contacts

List Front contacts in the workspace's shared address book, paginated. Use for browsing the contact list rather than looking for one specific person. To find one contact, use get_contact.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /contacts.

Arguments:

ArgumentTypeRequiredNotes
limitintegernoMaximum results per page, up to 100. Default 50.
page_tokenstringnoPagination cursor from a previous page's next_page_token.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
contactsarray of object
contacts[].handlesarray of object
contacts[].handles[].handlestring
contacts[].handles[].sourcestring
contacts[].idstring
contacts[].namestring
next_page_tokenstring

Also retrieved by: "show me everyone in our address book", "pull up the full customer directory", "browse every person we've got on file", "who's in our contacts list", "see the whole roster of people we've talked to".

front.get_contact

Get one Front contact's full record by id: name, description, and every email, phone, or handle on file, from Front's shared-inbox address book rather than a sales CRM. Use when the user names a specific person who has messaged the team. For their conversation history, use list_contact_conversations.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /contacts/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idstringyesFront contact id, e.g. "crd_9a8b7c6d".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
descriptionstring
handlesarray of object
handles[].handlestring
handles[].sourcestring
idstring
namestring

Also retrieved by: "look up this customer's details in our shared inbox", "what do we have on file for this person who's messaged support", "pull up someone's record in the shared address book", "what's this person's email and phone in our team inbox", "find the profile for a specific customer who's contacted the team".

front.create_contact

Add a new contact to the Front shared address book. Use when the user wants to add, create, or save a new person, customer, or lead in Front. Requires at least one handle, such as an email address.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /contacts.

Arguments:

ArgumentTypeRequiredNotes
descriptionstringnoFree-text note about the contact.
handlesarray of objectyesAt least one contact method the person is reachable at.
handles[].handlestringnoe.g. "jane@acme.com"
handles[].sourcestringnoe.g. "email", "twitter", "phone"
namestringnoContact's full name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idstring
namestring

Also retrieved by: "add this new customer to our records", "save this person's info for later", "register a new lead in the address book", "get this prospect into our contact list", "make sure we have this person on file".

front.update_contact

Update an existing Front contact's name or description. Use when the user wants to edit, correct, or update a person's record in Front, not create a new one. To change their reachable email or other handles, create a new contact instead.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /contacts/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idstringyesFront contact id to update.
descriptionstringnoReplacement free-text note.
namestringnoReplacement full name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
descriptionstring
idstring
namestring

Also retrieved by: "fix the name on this customer's record", "correct a typo in someone's contact info", "update the notes on this person's profile", "change what we've got written down about them", "edit this contact's details".

front.delete_contact

Permanently delete a contact from the Front shared address book. Use when the user wants to remove, purge, or erase a person from Front entirely. Their past conversations are not deleted, only the contact record itself.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /contacts/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idstringyesFront contact id to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this person from our records entirely", "purge this customer's contact info", "erase someone from the address book", "get rid of this contact for good", "take this person out of our system".

front.list_contact_conversations

List the Front conversations a specific contact has been part of, newest first. Use when the user asks about a person's history or past tickets with the team. For the contact's own profile, use get_contact.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /contacts/{{params.contact_id}}/conversations.

Arguments:

ArgumentTypeRequiredNotes
contact_idstringyesFront contact id to list conversations for.
limitintegernoMaximum results per page, up to 100. Default 50.
page_tokenstringnoPagination cursor from a previous page's next_page_token.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
conversationsarray of object
conversations[].idstring
conversations[].statusstring
conversations[].subjectstring
next_page_tokenstring

Also retrieved by: "what's this customer's history with us", "show me every ticket this person has ever opened", "pull up all the past threads with one contact", "has this person reached out before", "see everything we've talked to them about".