find_contacts
ChatGPTSearch the pipeline by name: contacts, their companies, and deals with stage, value and payment status. With no query, returns the most recently updated deals. Use for "what stage is the X deal in", "who is our contact at Y", "show me open deals", or to get a deal id or contactId before staging a change to it. With notContactedDays it answers "who have I not spoken to in a month": people with no recorded contact for that long, longest silence first, with their next follow-up task. Last contact covers DMs, comments and logged calls, emails and notes only, so say "no contact recorded" rather than asserting nobody spoke. For overdue deliverables and unpaid totals use get_pipeline_status instead.
find_content_topics
ChatGPTGroup the workspace's recent inbound messages into content topics (via the tag system) so you can suggest posts that address what the audience is actually talking about. Returns up to 20 topics with message counts, sentiment breakdown, and sample message ids. Use when the user asks 'what should I post about?', 'what are people talking about?', or 'find topics worth addressing'.
get_agency_overview
ChatGPTLook across EVERY client workspace the user can open, not just the active one, and rank them by what needs attention: unanswered DMs (and high-priority ones), open comments, failed posts, overdue deliverables, posts waiting on the client, reports sent but not opened, and an empty week ahead. Also flags renewal risk (a client who has not opened their report, or has had no report in 45 days). Use for "which clients need me today", "what is on fire", "who is at risk", "how are all my clients doing". It returns counts, not content: to read or act on a client's items the user switches to that client.
get_brand_voice
ChatGPTFetch the workspace's configured brand voice (tone, preferred phrases, do-not-use words, approved examples). Call before any drafting tool when you have not already loaded it this turn.
get_client_goals
ChatGPTRead this client's monthly goals against what has been measured: conversations from content, link clicks, deals won, new followers, reach, interactions, posts published. Use for "are we on track", "which goal is behind", "how did we do against our goals in September". Defaults to this month; pass month as YYYY-MM for an earlier one, which reads against the targets in force then. status is hit, short (month over and missed), running or unmeasured. value null means the platform did not report it, which is not zero. onPace compares the figure with how much of the month has gone. These are facts about the goals, not a prediction about the client.
get_contact_history
ChatGPTRead one pipeline contact's recent history: DMs (both directions), comments, logged calls/emails/notes and deal changes, newest first, plus their deals with stage and value. Needs a contactId from find_contacts. Use before drafting a follow-up or summarising where things stand with someone.
get_content_plan
ChatGPTRead this workspace's content plan: content pillars with their target share and this month's actual mix, how many posts went out this month directly on the platform rather than through Inexra, active campaigns with dates and goals, weekly cadence targets, the idea backlog, posts waiting on internal review or client approval, and upcoming days with nothing planned. Call this BEFORE proposing a batch of posts or content ideas, so what you propose fills real gaps and the under-served pillars. Also use for 'what should we post next', 'are we on plan', 'what is waiting on the client'.
get_conversation
ChatGPTRead the full DM conversation a message belongs to: the last messages from both sides, oldest first, at full length. Call this before drafting or staging a reply to a DM, and whenever the user asks what someone said or what was agreed. Takes a messageId from search_messages.
get_inbox_summary
ChatGPTAggregate inbox stats for the active workspace over the last N days: counts by sentiment, unreplied/unread totals, top senders, top tags, high-priority count. Use when the user asks "what is going on?", "how is my inbox?", or wants a digest.
get_pipeline_status
ChatGPTSnapshot the active workspace's deal pipeline: overdue deliverables (deadline passed, not yet posted/approved) and unpaid deals (paymentStatus UNPAID, not archived). Use when the user asks about priorities, follow-ups, brand work, or money outstanding.
get_post_performance
ChatGPTPer-post content performance for this workspace. Use for any question about individual posts: "which post did the best?", "what were my top posts last month?", "how did my reels do?", "what should I post more of?", "show me my worst performers". Returns one row per post with reach, views, likes, comments, saves, shares, and engagement rate, plus replies, exits and exit rate for stories and follows/profile visits where reported, plus an optional per-format comparison. For stories, pass format "STORY": replies and exit rate describe a story far better than likes or saves. This is the per-post companion to query_metrics, which returns workspace totals, use query_metrics for "how much reach did we get", and this for "which post got it". Some posts may be missing individual metrics depending on what the connected account exposes; the result says so explicitly. Never present a missing metric as zero.
get_recent_scheduled_posts
ChatGPTLook up posts in this workspace. Use window='recently_created' (default) for 'the posts I just scheduled' or 'what did we schedule?'. Use window='upcoming' for anything about the calendar ahead: 'what's going out next week', 'what is scheduled for Friday', or to find a post the user wants to change. Read-only. Changing or cancelling a scheduled post is done in Inexra.
get_report_contents
ChatGPTRead what is inside one report: its written sections, each metric block's figures, the posts it features, and a plain-language summary of the headline numbers. Published reports return the frozen figures the client saw; drafts return live figures. Use for 'what did the September report say', 'summarise the report for the client', or before drafting a note to send with a report. Takes a reportId from get_report_status.
get_report_status
ChatGPTReport documents in the active workspace: which are still drafts, which are published, whether the client has opened the share link, and when each was last published. Use when the user asks about reports, what is owed to a client, what is unfinished, or whether a client has seen anything.
list_workspaces
ChatGPTList the client workspaces this Inexra user can open, with ids and names, which one they last had open, and whether it can be used from here (it needs AI access on and a paid plan). Call this first when the user names a client, then pass its id as workspace to the other tools.
query_metrics
ChatGPTAnswer quantitative questions about a workspace with real numbers ("how many messages this month?", "what is the reply rate?", "how is the pipeline?", "how many complaints vs last month?"). Computes exact figures with a previous-period comparison. Groups: "inbox" (message volume, reply rate, avg response time, reply goal compliance, unreplied), "sentiment" (positive/neutral/negative split), "posting" (posts scheduled, published including those posted directly on the platform, failed), "pipeline" (active deals, pipeline value, deals won/lost, avg deal value), "content" (reach, views, engagement rate, follower growth, posting cadence, top posts), "campaigns" (per campaign: posts published, reach, link clicks, DMs started, deals won, progress toward goal). Some content metrics depend on what each connected account exposes. When one is unavailable, notes says why: pass that on rather than reporting a zero.
search_messages
ChatGPTSearch the active workspace's inbox. Filter by free-text content, platform, sentiment, tag, sender, reply/read state, priority, or recency. Returns up to 50 messages with key fields. Use this when the user asks about specific messages or wants to find content matching criteria.
stage_conversation_post_link
ChatGPTStage linking a DM conversation to the post it came from, so it counts toward that post in Analytics and client reports as confirmed by the team. Use when the user says which post someone came from ("she found us from the SPF reel", "link this to Tuesday's carousel"), or asks you to work it out. Read the thread with get_conversation first: its sourcePost shows any existing link and suggested posts, with the caption words each one shares with what the person wrote. Pass postId: null to remove the team's link. A conversation linked automatically (a story reply, a share, or a reply to a comment) cannot be changed. Only stage when the user asked for the link, or confirmed your guess; never on a hunch alone. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
stage_deal_create
ChatGPTStage adding a NEW deal to the pipeline ("add Oat & Co to the pipeline", "start a deal for this DM", "log that collab"). Call find_contacts first: if a deal with them already exists, change it with stage_deal_update instead. When the deal comes out of a DM, read the thread with get_conversation and pass its latestInboundMessageId as messageId so the deal links to the conversation. Only include a value, type, date or deliverable that was actually stated: never estimate a number. Created when the user confirms, and can be undone. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
stage_deal_move
ChatGPTStage moving a pipeline deal to another stage ("mark the Oat & Co deal as won", "move it to Negotiating"). Get the dealId from find_contacts. Pass the target stage by name; it must be a stage of the deal's own pipeline. Applied when the user confirms, and can be undone. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
stage_deal_update
ChatGPTStage changing an existing deal ("they agreed 2,400", "mark the Oat & Co deal invoiced", "contract is signed", "it closes on the 30th", "add a note that they want usage rights"). Get the dealId from find_contacts. Pass only the fields that change. To move a deal between stages use stage_deal_move instead. Applied when the user confirms, and can be undone. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
stage_dm_reply
ChatGPTStage a DM reply for the user to send. Use when the user asks you to reply, answer or respond to someone (not merely to draft). Read the thread with get_conversation first and reply to its latestInboundMessageId. For 'draft a reply' with no intent to send, return a draft instead. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
stage_plan_ideas
ChatGPTStage adding content ideas to the Plan board (up to 12). Use when the user wants ideas saved or added to the plan, not merely listed. Call get_content_plan first and assign each idea to the pillar it serves, by name. Ideas are notes on the board: nothing is scheduled and nothing can publish. Added when the user confirms, and can be undone. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
stage_report_draft
ChatGPTStage creating a client report as a DRAFT for a period ("draft the September report", "start this month's report"). The draft is built from a report template and opens with a summary paragraph the server writes from the real figures. It is never published or sent by you: that stays the user's decision in the report editor. Created when the user confirms, and can be undone. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
stage_review_request
ChatGPTStage asking a teammate to review a post before it goes out ("ask Dana to look at Friday's post"). Get the postId from get_recent_scheduled_posts or get_content_plan, and name the reviewer as the user did. Sent when the user confirms, and can be withdrawn. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
stage_task_create
ChatGPTStage a to-do for someone on the team, or for the user ("remind me to send Acme the deck Friday", "have Sam get the photos from the client by Tuesday", "every month remind Dana the report is due on the 1st"). It lands on that person's My work with the date. Use repeat for a to-do someone must do on a schedule. Attach it to what it is about when there is one: a dealId or a person's contactId from find_contacts ("remind me to call Ally back Friday" goes on Ally's contact), a postId from get_content_plan or get_recent_scheduled_posts, or a messageId from get_conversation. Added only when the user confirms. Over this connection the action is staged, not done: it waits in Inexra's review queue (Workbench, Needs your review) for 24 hours and happens only when someone confirms it there. Tell the user that, and never say it was sent, posted, moved or created.
find_contacts
Claudefind_content_topics
Claudeget_agency_overview
Claudeget_brand_voice
Claudeget_contact_history
Claudeget_content_plan
Claudeget_conversation
Claudeget_inbox_summary
Claudeget_pipeline_status
Claudeget_post_performance
Claudeget_recent_scheduled_posts
Claudeget_report_contents
Claudeget_report_status
Claudelist_workspaces
Claudequery_metrics
Claudesearch_messages
Claudestage_conversation_post_link
Claudestage_deal_create
Claudestage_deal_move
Claudestage_deal_update
Claudestage_dm_reply
Claudestage_plan_ideas
Claudestage_report_draft
Claudestage_review_request
Claudestage_task_create
Claude