- Brand
- Narrareach
- Category
- Content & Design
- Primary Subcategory
- Social Media Management & Scheduling
Integration details
Description
Schedule and manage articles and posts across Substack, Medium, LinkedIn, X, and other connected social platforms. Create drafts, upload media, manage publishing schedules, and review performance directly from ChatGPT.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Social Media Management & Scheduling
- Secondary Subcategories
- None listed
- Brand
- Narrareach
- Access
- Account required
- First tracked
- 2026-10-02
- Tool count
- 86
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Narrareach
Get updates when Narrareach’s Discoverability Score or category rank changes.
Competing in ChatGPT Social Media Management & Scheduling
View Category86 tools agents can invoke
Add a platform (or another account on a platform) to a Note that is already scheduled, so it posts there at the same time as the Note's other versions. Use this, not schedule_note, whenever the writer wants an already scheduled Note to also go to X, LinkedIn, Bluesky, Threads, Instagram, Facebook, TikTok or Pinterest: schedule_note would create a separate Note. Pass the id of any scheduled version of the Note (from list_scheduled_items, list_notes or schedule_note) and the platform. Without content the text is taken from the Note's versions (the same platform's version, else the longest that fits) and, if every version is too long, shortened to fit with adjustedPlatforms and warnings returned; content you pass is sent as written and must fit the platform's limit. When the writer has several accounts on the platform, name one with accountId (list_social_accounts; list_instagram_destinations for Instagram; list_linkedin_destinations for LinkedIn, with linkedInOrganizationUrn for a Company Page); without one the call is refused with the accounts to choose from. Ask the writer, never pick. Refused when the Note already goes to that platform or account (or posted there in the last day), when its time has passed or changed, or for Substack. Returns the new version(s) and their scheduled time. Safe to retry: pass a clientRequestId and reuse it only when retrying the same add (same Note and time, platform, account and content); a repeat returns the version already added (replayed: true), and the id reused for any other add is refused. Personal account only.
add_platform_to_scheduled_note
Save something real the writer has just told you to their material bank: a story they lived, a number they measured, an opinion they hold, or an example they use. Future drafts draw on it instead of making things up. Save only what the writer supplied; never add anything you wrote or assumed.
add_voice_material
Archive an owned draft so it no longer appears in draft lists. Active scheduled items must be cancelled first.
archive_draft
Check an article draft for what helps Google, AI Overviews, ChatGPT search and Perplexity find and cite it: an opening that answers first, descriptive headings, links, sourced figures, lists, image alt text, one call to action, and title length. Call it before scheduling an article or when the writer asks how to make a post easier to find. Advisory only: it never changes the draft or blocks scheduling. Offer the topFixes, check needsJudgment yourself, never invent facts, and for a published article give the writer revised sections to paste into the live post instead of calling update_draft.
get_ai_visibility_audit
Cancel the selected code request for the connected account owner. Does not cancel article schedules, delete drafts, or disconnect Substack. Use only when the user wants to cancel this verification request.
cancel_substack_verification
Cancel a scheduled note or article, with optional kind or automatic detection by id.
cancel_scheduled_item
Cancel a pending scheduled post. Already-published posts cannot be cancelled. Returns the new status.
cancel_scheduled_post
Send an already scheduled Note from a different connected account on Threads, Facebook, TikTok, Pinterest, X or Instagram. Use the scheduled Note id and an accountId from list_social_accounts, or from list_instagram_destinations for Instagram (an account outside the plan is refused). Each Instagram account a Note goes to is its own scheduled Note: change the one for the account the writer named, not another version of the same Note. Works only while the Note has not started sending. A Note already scheduled for that account from the same draft is refused as a duplicate. A Note held for an account choice resumes if its time is still ahead; if its time has passed, the result has needsNewTime: true and the Note must be rescheduled. Only change the account the writer asked for. Personal account only: it changes Notes you own, not a team workspace's.
update_scheduled_note_account
Read whether your connected Substack publication needs a code and whether a code request is waiting. Does not request a code, change the connection, or publish. Only the connected account owner can check it. If a code is waiting, ask for it in a normal chat message and wait for the reply; do not send another code.
get_substack_verification_status
Inspect one scheduled Note or Article using stored Narrareach evidence without contacting a provider. Returns revision, draftId, destination, timing, cover, subscribe controls, paywall, email delivery, stored remote receipt, issues, and next action. Article draft content is local and is not a provider-verified copy; queued Note content is stored on the scheduled Note.
get_scheduled_item_readiness
Compatibility tool for existing connections. New clients can use get_substack_verification_status, start_substack_verification, complete_substack_verification, and cancel_substack_verification for individual operations. Confirm Substack without leaving this conversation or signing in again. Use the exact connectionId from the publishing response or get_user_profile. Check status first. When the user wants to continue, use start to request a code, then ask them for it here. If start returns verified: true, skip code entry. Ask in a normal chat message and wait for the user’s reply; if a prompt closes without an answer, keep waiting in chat without requesting another code. Use complete with the returned id and the code they provide. Never guess a code, repeat submissions automatically, or send the code to another tool. Only the connected account owner can confirm. After completion, poll the existing schedule if its ID is known. Otherwise promptly retry the same saved draft with the original settings; the scheduler checks for an existing matching schedule before creating one. Verification is not proof of scheduling or publishing.
verify_substack
Create a linked article draft from a saved note. Preserves the note; repeated requests open the same article without overwriting edits. Does not publish.
create_article_from_note
Create a new draft owned by the authenticated user. Returns the created draft id and title.
create_draft
Generate short notes in the writer's voice with Narrareach's note generator, from their own writing (source "profile") or from an article or post you pass in. Each note comes with a suggested time that avoids what is already on their calendar. This saves and schedules nothing: show the notes to the writer, then schedule each one they approve with schedule_note, passing the note as content, the platforms, its suggestedTime unchanged as scheduledFor (it is an absolute time) unless the writer picks another, the same workspace you used here, and this result's requestId as generationId. To schedule several approved notes at once, use schedule_notes with the same fields per note and a clientRequestId for each. Use create_draft only to keep a note unscheduled in the personal account (no workspace); it cannot save into a team workspace. Up to 10 notes per call and 20 calls per day; a call can take a minute or two.
create_generated_notes
Save an owned comment reply for review. Generates in the writer’s voice when text is omitted. Returns the comment, parent note, and linked article for review. Does not publish.
create_reader_reply_draft
Record the writer's answer to one suggestion from get_voice_profile. Ask the writer first and call this only after they answer: "approve" adds it as a rule (pass text if they reword it), "dismiss" means they said no, "later" asks again in a week. One suggestion per call. Never decide for the writer.
decide_voice_suggestion
Plan long-form articles for the writer: 3 or 5 briefs, each with a working title, the question it answers, why now, the pillar, a 4 to 6 section outline, and evidence links. source "topics" builds on timely topics in the writer's pillars (the same as list_topic_suggestions), "profile" on their pillars, niche and past articles, "own" on a topic you pass. Briefs use the writer's voice and add no facts beyond their material and the evidence; show the evidence links when you present a timely brief. Takes about 20 seconds. When briefs is empty, emptyReason says why: no_topics (nothing timely in their pillars right now; try source "profile") or no_usable_briefs (try again). Briefs are free; 10 runs a day. To have Narrareach write one into a full draft, call queue_article_draft with its id. Available on the Revenue Writer plan and above. Counts as five requests against the rate limit.
generate_article_briefs
Check whether Audience is ready for a Substack publication and which filters it supports: the filter columns with their operators and values, plus how many subscriber tags and saved segments the publication has. Counts only; never returns subscribers. Workspace owner only, on a plan that includes agents.
get_audience_overview
Check on a Research Desk question started with start_research_desk_question. While done is false the desk is still researching: call again every 10 to 20 seconds, and do not start a new question meanwhile. Once done is true, answer is the desk's reply and noteIdeas are Notes it wrote for the writer to review; nothing is scheduled until the writer does it. failureMessage explains a question that could not be answered.
get_research_desk_answer
Read stored Narrareach Stats for a period: reach, engagement, conversion, publishing rhythm, engagement peak, other-writers timing benchmark, and latest audience snapshot. Does not live-fetch Substack or per-platform account analytics.
get_stats_insights
One article brief and its draft status. After queue_article_draft, call this about every 30 seconds until status is READY (draftUrl opens the draft) or FAILED. A draft usually takes 1 to 3 minutes. Available on the Revenue Writer plan and above.
get_article_brief
Read the stored daily audience series for a period: subscribers, paid subscribers, followers, email open rate, unsubscribes, impressions, engagements, and (for the owner) ARR and Medium earnings, one point per day, plus the latest point and the change over the period. Reads what Narrareach has stored; it does not live-fetch Substack. Team members see only their assigned publication, without ARR or account-wide fields.
get_stats_snapshot
Get a single draft by id, including full HTML content.
get_draft
Read where the writer’s imports stand: the onboarding writing import, Substack imports (pages, notes, and articles imported, and whether voice preparation ran), blog automation sources (status, last sync, item counts), and social history imports. Statuses, counts, and error categories only; no imported text. Read-only.
get_import_status
Get a single scheduled or posted note by id, including full content, recent stored metric snapshots (with Substack follows and subscriptions), platformMetrics, the connected account it names (socialAccountId) and why it is waiting if held (failureCode).
get_note
Read analytics for a connected platform. If a connection is required, returns action_required with connection guidance; do not repeatedly retry until the writer connects. Returns account-level summary data where available, otherwise stored Narrareach note performance and connection readiness. Reads stored data and never refreshes connections (X adds live account numbers when its token is current); for Medium, call refresh_medium_stats first if no stats are stored. Note metrics: impressions and clicks are null when the platform does not report them, not 0. For SUBSTACK, benchmark is the latest saved notes benchmark (see its analysedAt); refresh it with refresh_substack_benchmark. For Substack notes, clicks is the total_clicks count Substack reports for the note; Substack does not document which clicks it includes, and impressions are not available.
get_platform_analytics
Read the writer's Note posting schedule: the saved cadence (preferred times, posts per day, days of the week, weekend skipping), the effective schedule Narrareach uses (the default when nothing is saved), the schedule timezone, the next open queue slot, and the open slots for the next few days. To add a Note to the queue, pass nextOpenSlot.scheduledFor (or an openSlots entry's scheduledFor) unchanged to schedule_note's scheduledFor. In a team workspace the queue is the owner's, so members read the owner's schedule.
get_posting_schedule
Read the writer's main Narrareach Settings: preferences (preferredTimezone, capitalizeGeneratedNotes, articleLinkPlacement, and tagArticleLinksWithUtm for UTM tags on article links), the default account on each platform (Substack publication, LinkedIn destination, Instagram, and Threads, Facebook, TikTok, Pinterest and X accounts), connection health per platform, and email notification settings. Reads what Narrareach has stored; it does not refresh connections with any platform. Change preferences with update_settings. Personal account only.
get_settings
Get the transcript of a YouTube video, a podcast episode (an RSS feed, an Apple Podcasts link, or an episode page that links its audio), or a direct link to an audio file, so you can quote, summarise or repurpose it. Pass url, or uploadUrl for a file the writer uploaded to Narrareach. For a feed or show, episode picks an episode by title or guid; the latest is used otherwise. Short sources come back ready with the text. Long audio is transcribed in the background: the result is status processing with a transcriptId, so call get_transcript_status with it every 20 seconds or so until it is ready. Spotify links cannot be transcribed. A transcript someone already requested is returned from the cache and does not count against the allowance. When the day's audio minutes are used up, podcast feed and Apple Podcasts links are refused, even for an episode already in the cache; cached YouTube videos, audio file links (with or without an extension) and uploads still work. Uses the connected writer's own daily transcript allowance (YouTube requests and audio minutes, reset at midnight UTC), not a team workspace owner's; available on the Revenue Writer plan and above. Counts as five requests against the rate limit.
get_transcript
Check on a transcript that get_transcript returned as processing. While status is processing, call again every 20 seconds or so; long audio can take several minutes. Once ready, the result has the text. Reading a transcript does not use the allowance.
get_transcript_status
Get the authenticated Narrareach user — name, email, timezone, plan, connected platforms, Substack publications, and any team workspaces/writers available for multi-writer scheduling on this connection.
get_user_profile
Read the writer's voice profile: how they sound, their do/don't rules, topics, stances, real material, instructions, and a few of their own posts as examples. Call this before drafting or rewriting anything in the writer's voice. The material bank shows the most recent 30 items; pass detail "full" for all of them.
get_voice_profile
List the connected Instagram accounts available for Notes. Returns each accountId for schedule_note.instagramDestinations, how many accounts one Note may target, and defaultDestination: the account a Note posts to when instagramDestinations is omitted. When defaultIsAmbiguous is true several accounts are connected and none is marked default, so ask the writer which account to use and pass it explicitly.
list_instagram_destinations
List personal profiles and Company Pages available for LinkedIn Articles. With authorUrn, also returns newsletters owned by that author.
list_linkedin_article_destinations
Refresh and list LinkedIn personal profiles and Company Pages available for Notes. Returns accountId, organizationUrn for Pages, and the configured default destination.
list_linkedin_destinations
List Medium publications available to the connected account with writer access or higher. Uses the saved list unless refresh is true. Returns publication ids and canPublish: true indicates direct publishing permission; false indicates editorial review with content unpublished until editor acceptance.
list_medium_publications
The writer's article briefs from the last 14 days, newest first, plus any older brief that has a draft, with each brief's status: IDEA (no draft yet), QUEUED or WRITING (a draft is on the way), READY (draftUrl opens it in Narrareach), or FAILED (failureCode says why; queue it again). draftAllowance shows this month's drafts used and the limit. Available on the Revenue Writer plan and above.
list_article_briefs
List Substack’s creator matches for a publication: other writers whose audience overlaps, with their public profile, subscriber label, overlap counts, and whether this publication already messaged them. Read-only; it never sends a message. Workspace owner only, on a plan that includes agents.
list_creator_matches
List the authenticated user's drafts, newest first. Excludes archived drafts and returns compact summaries without full HTML content.
list_drafts
Personal saved hashtag sets. Saving sets never inserts hashtags into content or publishes anything. Up to 20 sets, 30 hashtags per set.
list_hashtag_sets
List posts the user has saved to their inspiration library (newest first).
list_inspiration_posts
List the user’s notes across every supported note platform. Includes scheduled, failed, and posted notes with the latest stored engagement snapshot when available. For Substack notes, engagement includes follows, freeSubscriptions and paidSubscriptions: what Substack attributes to that note. platformMetrics holds the latest saves, views, reach, follows and reposts the platform reported for posts on other platforms. Unreported metrics are null, not 0. Each note carries socialAccountId (the connected account it names on Threads, Facebook, TikTok, Pinterest or X; null means the only account or the default), failureCode (why a held note is waiting) and tags (the draft’s content tags). With status POSTED, notes are newest first and from/to filter by posted time; otherwise by scheduled time, soonest first. Page with page.nextCursor. Only notes sent through Narrareach are listed.
list_notes
Read stored Substack likes, comments, restacks, and other notifications for the authenticated Narrareach account. This tool does not fetch new activity from Substack. Each item has type (LIKE, COMMENT, RESTACK, or OTHER), kind (the Substack notification type), and label (a short description). OTHER covers notifications that are not note likes, note replies, or restacks: follows, free and paid subscriptions, likes and replies on posts and comments, mentions, chat activity, live streams, and system notices such as a scheduled note being sent. Many OTHER items have no content; read kind and label to see what they are. Only COMMENT items with canReply true can be replied to. The inbox contains new activity; history contains the initial import and items already handled or replied to. Either can contain recent activity. sort=time returns newest first. range.page and range.all show the date ranges for the returned page and the requested state. Check sync.lastSyncedAt and sync.refreshRecommended for freshness; results may not include the latest activity.
list_reader_activities
List saved reply drafts for the selected publication, filtered by status. Does not publish or change drafts.
list_reader_reply_drafts
List a note and its linked article with independent statuses and destinations.
list_content_versions
List Notes and Articles in one bounded schedule view with destination, content-readiness checks, stored provider receipt state, and next action. workspace and writer scope authorized team Notes; team Articles remain private to their owner. Each Note destination carries accountId (the connected account it names; null means the only account or the default) and accountCanChange. A held Note reports why in issues (social_account_choice_required, social_account_disconnected, missed_while_account_unavailable, x_account_changed) with a writer-facing deliveryNote. Reads stored evidence without contacting a provider.
list_scheduled_items
List scheduled posts for the authenticated user, ordered by scheduled time ascending.
list_scheduled_posts
List the connected Threads, Facebook, TikTok, Pinterest and X accounts a Note can be sent to. Returns one entry per platform with each accountId for schedule_note.socialAccountIds, defaultAccountId (the account used when none is named), and accountChoiceRequired: true when several accounts are connected and none is the default, in which case ask the writer which account and pass it in socialAccountIds. X is listed only when the writer has added X accounts for posting from more than one; a writer who uses a single X connection has no X entry and needs no socialAccountIds for X. Instagram and LinkedIn have their own tools: list_instagram_destinations and list_linkedin_destinations. The default account is set, and accounts are connected or reconnected, by the writer in Narrareach Settings; no tool does either.
list_social_accounts
List the writer’s own posts on connected Instagram, Threads, Facebook, LinkedIn, Bluesky, Pinterest, TikTok and X accounts, including posts published outside Narrareach, newest first, with the latest metrics each platform reported (likes, comments, shares, saves, sends, clicks, views, reach, impressions, follows, reposts). source says whether the post went out through Narrareach. Metrics a platform does not report are null, not 0 (for example, Threads has no reach and Bluesky only likes, comments and shares); on X the view count is impressions. Filter by platform, source, and from/to on published time; page with page.nextCursor. Personal account only; Substack is covered by list_notes and get_platform_analytics.
list_social_posts
Suggest timely topics the writer could write about now, for each of their content pillars (their profile themes and the tags they use most). Each suggestion has the topic, its pillar, a fit score (0 to 100), why it is timely now, a suggested angle, and evidence: the trend sources and headline links behind it. whyItWorks says in one sentence why it is likely to land (a Reddit thread or X post well above the usual response in the writer's niche, or the writer's best-performing pillar), with the numbers in signals; it is null when there is nothing worth saying. Show the evidence links so the writer can check them; do not present a suggestion as fact beyond what they say. pillars lists the writer's pillars with their ids; pass pillarId to see one. When recommendations is empty, emptyReason says why: refreshing means the writer's niches are still being searched, so call again in about 30 seconds; unknown_pillar means that pillarId is not one of theirs, so call again without it; no_trends or no_matches mean nothing timely fits right now, so do not retry soon; no_pillars and no_profile mean the writer needs themes or a niche on their Narrareach profile; check_unavailable means try again later. To draft Notes on a suggestion in the writer's voice, call create_generated_notes with source "articles", postTitle set to the topic (trimmed to 300 characters), postContent set to its whyNow, its suggestedAngle, and each headline title with its URL (one per line; a headline without a URL by its title only), postUrl set to the first link's URL (left out when that link has none), and customInstructions "Use only the facts in this text; do not add any." The generator writes from that text and checks the notes against it, so the evidence goes with the notes. Each create_generated_notes call costs 10 requests against the rate limit. Available on the Revenue Writer plan and above, on the writer's own plan. Counts as three requests against the rate limit.
list_topic_suggestions
Narrareach ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Narrareach's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Narrareach alternatives on ChatGPT?
As of 2026-11-02, Narrareach competes with 8digit Planner, Abency, AdaptlyPost, Adly, Adzviser Sprout Social, AgentFabrica, Antwork, Atenda Social and 107 more in ChatGPT Social Media Management & Scheduling, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.