Plotline
By Plotline
Overview
AI CRM that reasons for every user. Build audiences, draft campaigns and track results in ChatGPT. Plotline is the AI customer engagement platform that reasons for every user. Its AI Director reads each user's full live context and decides the right channel, message, format and moment for them, or whether to reach out at all. You set the goal, guardrails and brand voice. Plotline gives every user their own AI marketer across in-app nudges, widgets, gamification, videos, push and email. With the Plotline connector, you can run Plotline from ChatGPT in plain English, without logging into the dashboard: - Audiences: preview audience size and create or update segments. - Campaigns: pick from hundreds of templates, preview them and create draft campaigns. Drafts are never published automatically. You review and launch them in Plotline. - Performance: list and search campaigns and get impressions, clicks and conversions. - Feedback: pull survey responses and summarize themes. - Assets: upload and manage images and media. - Users and team: look up a user's profile and attributes, and list team members. - Docs: get answers about SDK setup and features. Access uses your Plotline login and follows your existing dashboard permissions.
Tools
complete_upload
ChatGPTurl. Call it only after the HTTP PUT to uploadUrl succeeded, with the same productId, type and key. If no file is found at the key, or the file is over the size limit, nothing is added: fix the problem and start again with request_upload. Unlike propose_changes, the asset is added straight away, so call it only for a file the user asked you to add.generate_image
ChatGPTbrief (what the image is for, e.g. a Diwali sale banner for a bottom sheet) or an exact imagePrompt. Read the workspace's brand guidelines with search_plotline_knowledge first and put the relevant colours and style in the brief. Pick aspectRatio from where the image goes (see plotline://knowledge/recipes/images). referenceAssetId (an IMAGE in this product's asset library) is used as a style or content reference. The images are not added to the asset library unless saveToLibrary is true; only set it when the user asks to keep them. The returned url can be used straight away in a propose_changes draft (an IMAGE node's value or a bgImage). Show the images to the user before using them.get_change_set
ChatGPTget_plotline_knowledge
ChatGPTlist_products
ChatGPTpropose_changes
ChatGPTstatement, Guardrails = strategy, goal events, audience, holdout/rollout), delete, and add/rename/move/remove topics and subtopics; and a subtopic's SMS, email or push copy (aiDirectorContent): add, edit or remove variants, or create the content for a subtopic that has none. Push variants have title, body and optional Android subtitle (plain text; image and deeplink are kept; a new push variant may copyFromSlot to reuse a sibling's image and deeplink). Email variants have subject, preheader and the text of the layout's blocks (read them with read_object on aiDirectorContent); a new email variant needs copyFromSlot or templateId. New copy is saved as Draft unless the reviewer also approves it for sending; approved email is re-rendered after approval. And AI Director signals (decisioningSignals): create, edit (name, question, answer type, options, audience, evaluation windows, attribute key, default value, schedule) and delete; publishing and pausing stay in the dashboard. And SQL segments (cohorts): create, edit (name, description, sqlDefinition.query, sqlDefinition.description) and delete a segment whose members are a ClickHouse SELECT returning UserRefID. Test the SQL with analytics_query first and write sqlDefinition.description in plain words; read plotline://knowledge/recipes/sql-segment. Filter segments made in the dashboard can't be changed here. Before the first call, read plotline://knowledge/recipes/propose-changes with get_plotline_knowledge; read current documents with read_object so patches target real ids. Send one user intent per proposal (many changes are fine). Use dryRun:true to check without saving. Returns {status, changeSetId?, reviewUrl?, summary, issues[]}: status INVALID means nothing was saved; fix each error (it has path and hint) and call again. When saved, share the reviewUrl with the user and say it is waiting for their approval. To revise a pending proposal, pass supersedes=<changeSetId>.read_object
ChatGPTrequest_upload
ChatGPTsearch_plotline_knowledge
ChatGPTanalytics_query
Claudecomplete_upload
Claudeget_change_set
Claudeget_plotline_knowledge
Claudelist_products
Claudepropose_changes
Clauderead_object
Clauderequest_upload
Claudesearch_plotline_knowledge
ClaudeCapabilities
Example Prompts
Click any prompt to copy it.






