MCP App Store
by KeenEthics
Channlworks icon

Channlworks

By Channlworks

Get New App Alerts

Overview

Connect to Channlworks to find and summarize partner relationships, customer accounts, contacts, deals, campaigns, MDF requests, receivables and payables claims, notes, and programs. Create or update supported records and carry out supported approval workflows when your Channlworks role permits them. Access is scoped to the signed-in user and active organization. Sign in to a Channlworks organization with MCP Access enabled.

Tools

add_campaign_exceptional_approvers

ChatGPT
Adds exceptional approvers to a campaign, so people beyond the configured approver can approve it. Approvers already listed are skipped, and newly added approvers are notified. When the campaign is pending approval each new approver also receives a pending approval request; in any other status they are only recorded on the campaign.

add_deal_additional_approvers

ChatGPT
Adds approvers to a deal that is pending approval so more people must sign off before it can proceed. Requires approval-management rights. Approvers already assigned to the deal are ignored; the notification to the new approvers cannot be recalled.

approve_campaign

ChatGPT
Approves a campaign that is pending approval, optionally recording an approval reason and adding exceptional approvers. The campaign owner, creator and approver are notified.

approve_deal

ChatGPT
Approves a deal that is pending approval, either by resolving the caller's own pending approver request or, for users with approval-management rights, by resolving all pending requests at once. Only a submitted deal that is currently pending can be approved, and a deal already approved cannot be approved a second time — an edited submitted deal re-enters approval on its own.

assign_partner_classifications

ChatGPT
Sets the full classification set of one partner card. The given IDs replace the card's current classifications — an empty list clears them. Look up or define the classification first, then assign its ID; unknown IDs are rejected.

cancel_campaign

ChatGPT
Cancels an ACTIVE campaign, optionally recording a reason. The campaign is kept with its history rather than deleted, and its participants are notified.

change_campaign_status

ChatGPT
Writes a campaign's status directly to any of DRAFT, PENDING_APPROVAL, ACTIVE, COMPLETED or CANCELLED, for vendor admins only. This is a direct administrative write: no approval step runs, no status transition is rejected as invalid, and nobody is notified. The dedicated submit, approve, reject, complete, cancel and reactivate operations run those workflow checks and do notify campaign participants.

complete_campaign

ChatGPT
Marks an ACTIVE campaign complete, optionally recording a reason. A campaign that requires approval can only be completed by a vendor admin. Deals stay linked and keep their attribution, and the campaign participants are notified.

complete_deal_pov

ChatGPT
Closes a deal's Proof of Value, recording whether the evaluation succeeded and optional outcome notes, and optionally attaching up to five evidence files. Requires an existing POV that has not been completed; completion is final and cannot be repeated.

create_account

ChatGPT
Creates a customer (end-customer) account with name and domain, plus optional address, industry, owner, size and phone numbers. Only CUSTOMER accounts can be created here — vendor and partner organizations are created through organization management. Creation notifies the account stakeholders and enqueues an outbound CRM sync, so the side effects cannot be recalled afterwards.

create_arap_claim

ChatGPT
Creates an ARAP claim (submitted) with a category, currency, claimed amount, primary approver, and at least one PAYER partner map. Optional: collaborators, linked sources, and documents based on claim category requirements.

create_campaign

ChatGPT
Creates a campaign with name, type, dates, budget, owner, sharing settings and an optional approver. The status may be DRAFT, PENDING_APPROVAL or ACTIVE, so a campaign can be created straight into an active state without a separate submission step. Participants and the approver are notified, which cannot be recalled, and the campaign joins the shared campaign list of any partner it is shared with.

create_channl_note

ChatGPT
Creates a note on a deal, MDF request, or account, attributed to the caller. Participants named on the note are emailed, which cannot be recalled.

create_channl_note_comment

ChatGPT
Adds a comment by the caller to an existing note and emails the note's participants, which cannot be recalled.

create_customer_contact

ChatGPT
Creates a customer (end-customer) contact with name and email, plus optional account association, address, company, role, visibility, and phone numbers. The contact type is always CUSTOMER — vendor and partner contacts come from the partner's own organization record. Creating a contact records a contact event, notifies the people involved, and enqueues an outbound CRM sync, so the side effects cannot be recalled afterwards.

create_deal

ChatGPT
Creates a deal with optional partner mappings, product selections, customer account and contact association, tags, and approval workflow configuration. A submitted (non-draft) deal starts the approval workflow, notifies the approver and anyone copied on the deal, and enqueues an outbound CRM sync; a draft deal records the deal without notifying anyone and can be submitted later with update_deal. Proof of Value is not configured here — request_deal_pov creates it on a deal that has none.

create_ecosystem_checklist

ChatGPT
Creates a checklist on a partner card (PartnerMap) with a label and sort order.

create_ecosystem_partner

ChatGPT
Adds one partner card to the caller's ChannlViz ecosystem beneath a parent node, mirroring the Add Partner form. The parent must allow the category (vendor root accepts all; terminal categories accept none) and, when it is a partner card, must have accepted its invitation. Contact name/phone and the address block are required; the website (domain) is required except for Consultant. The card starts in Pre-Qualification stage. The parent node's nodeId comes from the ecosystem graph. Classifications are not part of card creation: the classification is resolved or defined first, then assigned to the new card by its ID.

create_ecosystem_sub_checklist

ChatGPT
Creates a sub-checklist item under a checklist, optionally requiring a file and carrying notes.

create_mdf_request

ChatGPT
Creates a Market Development Fund (MDF) request for the caller's organization, with a purpose and amount, optional event details, dates, and an approval workflow configuration. Fields are conditional on purpose: non-cash purposes require purposeValue NON-CASH and a code, cash purposes require a percentage, and event purposes require eventName and expectedOutcomes. A submitted request notifies its approver and collaborators, which cannot be recalled; a draft request can be submitted later.

create_partner_classifications

ChatGPT
Defines new partner classifications in a batch; names that already exist are reported as duplicates instead of being created twice. Define a classification only after the existing list confirms it is missing.

create_program

ChatGPT
Creates a partner program with configurable tiers. Each tier defines requirements (revenue targets, certifications, location coverage, etc.) and benefits (margin settings, MDF allocations). A new program starts in DRAFT status and accepts no enrollments until its status is set to ACTIVE; creating it notifies nobody.

decline_channlsign_document

ChatGPT
Declines the CALLER's signature on a ChannlSign document awaiting them, with a reason of at least 5 characters that the document's creator sees. This only declines the caller's own signature: the document becomes DECLINED only when every signer has declined, becomes PARTIALLY_SIGNED when someone has signed and none are pending, and otherwise stays AWAITING_SIGNATURE with the other signers still able to act. The response's documentStatus reports the document's state right now — report that to the user, not an assumption.

delete_channlsign_document

ChatGPT
Deletes a ChannlSign document that has not been sent yet — only the document's creator may delete, and only while it is in DRAFT or UPLOADED status. A sent document can no longer be deleted; void_channlsign_document cancels it.

delete_deal

ChatGPT
Permanently deletes a deal and its partner mappings, tags and POV records. Requires deal management rights. Deals that carry a renewal reminder or are submitted renewals cannot be deleted.

delete_ecosystem_checklist

ChatGPT
Deletes a checklist and its sub-checklists by ID.

delete_ecosystem_partner

ChatGPT
Deletes an ecosystem partner card by nodeId after the same validation the viz delete modal runs. The vendor card cannot be deleted, and partner-side logins may not delete. Child cards under the deleted card are re-parented to targetId when provided, otherwise to the vendor root. Deletion is soft: connections are removed immediately and remaining data cleanup continues in the background.

delete_ecosystem_sub_checklist

ChatGPT
Deletes a sub-checklist item by its ID and removes it from its parent checklist.

enroll_in_program

ChatGPT
Enrolls the caller's partner organization in an ACTIVE program, creating the enrollment record and starting compliance tracking against the program's tiers. Available to partner users for vendor-run programs; only a program in ACTIVE status accepts enrollments, and an organization cannot enroll in a program it created itself.

get_all_customer_accounts

ChatGPT
Returns a paginated list of customer (end-customer) accounts, filterable by search text or a single account ID, and sortable. Read-only. Partner organizations are a separate population, listed by get_all_ecosystem_accounts.

get_all_customer_contacts

ChatGPT
Returns a paginated list of customer contacts — contacts recorded at end-customer accounts — with free-text search and sorting. Read-only. Partner-side contacts are a separate population, listed by get_all_ecosystem_contacts.

get_all_ecosystem_accounts

ChatGPT
Returns a paginated list of ecosystem accounts — CRM account records for partners whose ChannlViz card is connected — filterable by search text or a single account ID and sortable. Read-only. These are account records, not the partner cards themselves; added-but-unconnected partners appear only in get_ecosystem_relations. Customer accounts are a separate population, listed by get_all_customer_accounts.

get_all_ecosystem_contacts

ChatGPT
Returns a paginated list of ecosystem contacts — contacts belonging to the partner organizations the caller works with — with free-text search and sorting. Read-only. Customer contacts at end-customer accounts are a separate population, listed by get_all_customer_contacts.

get_all_partners_compliance

ChatGPT
Returns the partner organizations enrolled in a program with each partner's ID and name, assigned tier ID and name, and tier display color. Read-only.

get_arap_claim

ChatGPT
Fetches full details for a single ARAP claim by its UUID, including category, requirements, documents, partner maps, and linked sources.

get_campaign_approval_history

ChatGPT
Returns a campaign's approval history, including each approver's status and resolution. Read-only.

get_campaign_dashboard_summary

ChatGPT
Returns a cross-campaign summary across the caller's visible campaigns: total counts, sourced and influenced pipeline, won revenue, and status and type distributions. Read-only.

get_campaign_deals

ChatGPT
Returns the deals linked to a campaign. Read-only. Partners see only the deals their own organization linked; vendor admins see every linked deal.

get_campaign_details

ChatGPT
Returns one campaign in full: status and approval state, dates, budget and currency, creator, owner, approver, collaborators, expected outcomes, shared partners, connected deal count, and sourced/influenced pipeline with won revenue. Read-only.

get_campaign_logs

ChatGPT
Returns a campaign's audit timeline: created, approved, rejected, completed, cancelled, reactivated and deal link/unlink events with their actors and timestamps. Read-only.

get_campaign_mdf_summary

ChatGPT
Returns the MDF request totals for a campaign — amount requested and amount approved. Read-only.

get_campaign_metrics

ChatGPT
Returns a campaign's aggregated metrics: pipeline, revenue and deal counts broken down by attribution type. Read-only.

get_campaign_partner_maps

ChatGPT
Returns the partner maps (tenant relationships) a campaign is shared with. Read-only.

get_campaigns

ChatGPT
Returns a paginated list of campaigns with optional filtering by status, type, and search term. Read-only; visibility respects RBAC and partner sharing rules.

get_channl_note_by_note_id

ChatGPT
Returns one note with its header, content, author, participant list and note date. Read-only. The comments on the note are listed by get_channl_note_comments_by_note_id.

get_channl_note_comments_by_note_id

ChatGPT
Returns every comment on one note, in the order they were added. Read-only.

get_channl_notes_by_module_id

ChatGPT
Returns the notes attached to one record, newest first. moduleType selects the record family the notes hang off: Deals, MDF, or Accounts, and moduleRefId is that record's ID. Read-only. Comments on an individual note are listed by get_channl_note_comments_by_note_id.

get_channlsign_document

ChatGPT
Fetches one ChannlSign document by ID — creator-only — including every signer with their name, email, signing order, decline reason, and signature status (PENDING, VIEWED, SIGNED, DECLINED, VOIDED), so it answers who has and has not signed. Also returns a signed URL to the document's current PDF for the user to open.

get_channlsign_documents

ChatGPT
Lists ChannlSign e-sign documents for the caller's tenant with pagination, optional status filter (DRAFT, UPLOADED, AWAITING_SIGNATURE, COMPLETED, PARTIALLY_SIGNED, DECLINED, VOIDED), title search, and sorting. ChannlSign is the e-sign feature inside the Channlworks web app, not a separate app: documents are created and sent in the Channlworks app, and these tools read and act on existing documents. Row shape mirrors the ChannlSign dashboard.

get_channlsign_final_copy

ChatGPT
Returns a signed download URL for a ChannlSign document's final PDF — available to the creator or any signer once the document is COMPLETED, PARTIALLY_SIGNED, VOIDED, or DECLINED. Hand the URL to the user to open; it expires.

get_channlsign_metrics

ChatGPT
Returns the caller's ChannlSign document counts grouped by lifecycle state: draft, awaitingSignature, completed, partiallySigned, declined, and voided, plus the total.

get_channlsign_pending_signatures

ChatGPT
Lists ChannlSign documents that are awaiting the CALLER's signature — the user's personal signing queue, with the same pagination, search, and sorting as the document list.

get_deal_approval_history

ChatGPT
Returns a deal's approval history: each approver request with its sequence, status and resolution. Read-only.

get_deal_by_id

ChatGPT
Returns full detail for one deal: its fields, partner mappings, accounts, contacts, products, tags, approval statuses and Proof of Value state. Read-only.

get_deal_logs

ChatGPT
Returns a deal's activity timeline, newest first: created, updated, submitted, approved, rejected, POV and renewal events. Read-only.

get_deal_product_options

ChatGPT
Returns the active product SKUs the caller may attach to a deal, each with catalog metadata, list price and minimum order quantity. Read-only. Typical use is to resolve the productSkuId values that create_deal and update_deal accept.

get_deals

ChatGPT
Returns a paginated list of deals visible to the caller, with optional filters on stage, approval status, tags and draft state, plus free-text search. Read-only; visibility follows the caller's partner mappings and role.

get_ecosystem_approval_request_details

ChatGPT
Returns the approval email behind a bulk invite request — sent email data, sender, recipients, and assigned approver — by the emailId from get_ecosystem_approval_requests.

get_ecosystem_approval_requests

ChatGPT
Lists bulk partner-invite requests pending action, grouped by bulkUploadId with each request's partner rows, approved/rejected IDs, and comments. The caller needs a request's partner row IDs and emailId to approve or resend it.

get_ecosystem_checklists

ChatGPT
Returns a partner card's checklists with their sub-checklists by PartnerMap ID.

get_ecosystem_relations

ChatGPT
Lists the partner cards on the caller's ChannlViz canvas — every partner organization added to the ecosystem, including added-but-not-yet-connected cards — with node IDs, names, categories, and connection status. Read-only. These are the ecosystem partners; CRM account records for connected partners live in get_all_ecosystem_accounts, and companies with no relationship yet live in the public partner directory (search_public_partners).

get_ecosystem_sub_checklist_files

ChatGPT
Lists the files attached to a sub-checklist with signed download URLs, and reports whether the sub-checklist requires a file, so a completed upload or completion readiness can be verified.

get_mdf_requests

ChatGPT
Returns a paginated list of Market Development Fund (MDF) requests visible to the caller, filterable by approval status, vendor, partner, state, purpose and MDF ID, with search and sorting. Read-only.

get_partner_classifications

ChatGPT
Returns the partner classification definitions for the caller's organization with their UUIDs, filterable by name — the same set the viz shows as a card's classifications. Check this list before defining a new classification.

get_program_details

ChatGPT
Returns one program with its tiers, requirements, benefits, and the caller's own enrollment status where applicable. Read-only.

get_tenants

ChatGPT
Returns the organizations available to the authenticated user, each with the user's role and login type for it. With no type it lists the organizations the user is already a member of; JOINABLE_TENANTS lists organizations the user can join, and CONNECTED_TENANTS lists the user's connected organizations. These are the user's own organizations, not partner organizations — partner organizations are listed by get_all_ecosystem_accounts. Read-only.

get_user_details

ChatGPT
Returns the authenticated user's session record: name, email, phone, role, admin flag, membership status, login type, onboarding flags, the active organization with its partner map IDs, and every organization the user belongs to with the per-organization role. Pass activeTenantId to scope the session to one organization the user belongs to; omitting it uses the caller's currently active organization. Read-only.

get_user_identity_profile

ChatGPT
Returns the authenticated user's identity-provider profile: display name, username, avatar image URL, email addresses, and account created/updated/last-sign-in timestamps. Read-only. This is the profile record itself, which carries fields the session record from get_user_details does not (username, avatar, per-address emails, sign-in history), while roles, organizations and admin status live on that session record.

import_ecosystem_partners

ChatGPT
Creates multiple partner cards from a JSON row list attached to one parent node — the MCP counterpart of the XLSX import. Each row is validated and duplicates are skipped; the response separates created cards (nodeId + contact) from invalid rows with reasons.

invite_ecosystem_partner

ChatGPT
Emails a partner invitation for one added ChannlViz card, the MCP counterpart of the card's Invite action. When the card already carries an invitation the email is re-sent and the existing invitation is returned.

linked_vp_contacts

ChatGPT
Returns the contacts linked to the given partner map IDs as names, email addresses, tenant IDs, user-view labels, and approver flags. Omitting partnerMapIds returns the contacts already visible in the caller's active organization. Read-only. This read is scoped by partner relationship; get_all_ecosystem_contacts and get_all_customer_contacts are the paginated, searchable listings of the same contact population.

list_arap_claim_categories

ChatGPT
Returns all claim categories with their requirements for your active tenant, or for a tenant linked to it through a partner map. Categories define the document requirements for claims.

list_arap_claims

ChatGPT
Returns a paginated list of ARAP claims visible to the caller. Supports filtering by direction (outgoing/incoming), status, category, partner map IDs, and full-text search on claim ID.

list_industry_segments

ChatGPT
Returns the industry segments the caller's organization can assign to a deal or account, each with its UUID and, for a sub-segment, its parent segment's UUID. Read-only. Typical use is to resolve the industrySegmentId value that create_deal, update_deal and create_account accept; a submitted deal requires one.

list_programs

ChatGPT
Returns a paginated list of partner programs, filterable by enrollment status (enrolled/available), vendor, and program status (DRAFT/ACTIVE/ARCHIVED), with search and sorting. Read-only. Visibility follows the caller's login type and organization.

list_tags

ChatGPT
Returns the tags defined for the caller's active organization, each with its UUID, filterable by module and by tag name. Read-only. The UUIDs it returns are the values the tags.attach and tags.detach fields on the deal and ARAP claim tools accept — tag names are resolved to UUIDs here rather than accepted inline.

process_arap_claim

ChatGPT
Processes a submitted claim with one of three actions: APPROVE (with approved amount, if amount is changed reason required), REJECT (with reason), or ESCALATE (adds an exceptional approver with a reason).

reactivate_campaign

ChatGPT
Returns an expired campaign to ACTIVE, optionally recording a reason. The campaign participants are notified.

reactivate_deal

ChatGPT
Returns an expired, lost or rejected deal to active work at the stage given in the request, keeping the existing deal data. A dropped deal cannot be reactivated, and reactivation re-enters the deal's approval workflow.

record_arap_claim_payment

ChatGPT
Records an externally completed payment against an APPROVED or PARTIALLY_PAID claim. The funds have already moved outside Channlworks — this tool does not initiate, authorize, exchange, or transfer money. It stores the payment reference, date, method, paid amount, and payment proof documents, updates the claim to PARTIALLY_PAID or PAID, and notifies the claim parties. Only the PAYER party can record a payment.

reject_campaign

ChatGPT
Rejects a campaign that is pending approval, with a required rejection reason. The reason is recorded in the campaign's approval history and the campaign participants are notified.

reject_deal

ChatGPT
Rejects a deal that is pending approval, as the pending approver or with approval-management rights. Rejection is final for the submission: every pending approver request is closed, the deal is marked rejected, a running Proof of Value is cancelled, and an unfulfilled renewal schedule is withdrawn. Rejected deals can be corrected and resubmitted for approval again.

request_deal_pov

ChatGPT
Creates the Proof of Value period for a deal that does not have one yet, recording the scheduled start and end dates and an optional credit code. Fails if the deal already has a POV; moving an existing POV's end date later is the POV extension operation. On a deal that is already approved this re-triggers the approval workflow, and a POV cannot be removed afterwards, only completed.

request_deal_pov_extension

ChatGPT
Moves the scheduled end date of a deal's existing Proof of Value later, with a required reason. Requires a POV that is not already marked successful, and the new end date must be after the current one and within the deal's expiry. Re-triggers the approval workflow when the deal is approved.

request_ecosystem_invite_approval

ChatGPT
Stages partner rows as a bulk invite request and emails the approver for sign-off. No cards are created yet. Pass bulkId alone to resend an existing request. The approver then uses review_ecosystem_partner_request, and the requester sends invites with send_ecosystem_bulk_invites.

resubmit_arap_claim

ChatGPT
Resubmits a REJECTED claim back to SUBMITTED status. The CLAIMANT or PAYER can resubmit.

review_ecosystem_partner_request

ChatGPT
Approves or rejects the listed partner rows of a bulk invite request. Only the assigned approver may act. With comments, every unlisted row of the batch is also rejected; without comments unlisted rows stay pending.

save_ecosystem_checklist

ChatGPT
Saves a partner card's checklist progress: marks sub-checklists complete or incomplete and reorders checklists in one call. A sub-checklist that requires a file cannot be marked complete until upload_ecosystem_sub_checklist_file has attached one.

search_public_partners

ChatGPT
Searches a public directory of companies for potential partners, using a natural-language query that may combine technology focus, industry, geography or a specific company name. Read-only, and outside the caller's own data: results are public directory entries, not the partner organizations the caller has a relationship with (those are returned by get_all_ecosystem_accounts and get_ecosystem_relations), and a result does not imply any existing relationship or contact. Appropriate for prospecting and market research. Each page returns 10 results in relevance order; increase page to continue through them.

send_ecosystem_bulk_invites

ChatGPT
Creates partner cards for approved rows of a bulk request and emails each partner an invite. Only the caller who is the assigned approver may run this. Partners whose email sends successfully are marked INVITED; per-recipient failures are reported.

set_ecosystem_partner_tags

ChatGPT
Applies a tag diff — attach, create, detach — to a partner card's linked account, the same write the viz edit form's tag chips perform. Tag IDs come from list_tags with module ECOSYSTEM_ACCOUNTS; cards without a linked account cannot be tagged.

submit_campaign

ChatGPT
Submits a DRAFT campaign for approval, moving it from DRAFT to PENDING_APPROVAL. Available to partner callers only, and the campaign's approver is notified.

update_arap_claim

ChatGPT
Updates fields on an existing ARAP claim — amount, currency, approvers, collaborators, partner maps (only COLLABORATOR), documents, and status transitions.

update_campaign

ChatGPT
Updates an existing campaign: description, venue notes, virtual link, budget, dates, owner, collaborators and sharing. Fields that a non-DRAFT campaign locks cannot be changed, and collaborators and participants are notified of the update.

update_campaign_deal_attribution

ChatGPT
Changes how an already linked deal is credited to a campaign — its attribution type, manual percentage split, or evidence note. The deal stays linked; the link is removed with unlink_campaign_deal.

update_deal

ChatGPT
Updates an existing deal. Omitted fields are left unchanged; partners and products are replaced wholesale when supplied, and the clear* flags remove a previously set value. Moving a deal to LOST requires lostReason, and editing a submitted deal re-triggers its approval workflow, notifies approvers, and enqueues an outbound CRM sync.

update_ecosystem_checklist

ChatGPT
Renames a checklist by its ID without touching its sub-checklists or the checklist order.

update_ecosystem_partner

ChatGPT
Updates an existing ecosystem partner card by nodeId with only the changed fields, mirroring the edit form's PATCH. Editable: name, domain, logoURL, address, city, state, country, contactName, contactEmail, contactPhoneNumber, and category (switch-category only — current and target must both be one of Reseller, Referral_Partner, Global_System_Integrator, System_Integrator, Managed_Service_Providers). Stage, checklist, and label are server-owned. On the vendor card only logoURL may change. Contact name and phone are read-only while they come from the contact's account profile and the email is unchanged — change the email first. Avoid category changes while a partner migration is queued or running.

update_ecosystem_sub_checklist

ChatGPT
Updates a sub-checklist's label, notes, or file requirement by ID.

update_program_status

ChatGPT
Advances a program through its workflow: DRAFT → ACTIVE → ARCHIVED. Moving to ACTIVE requires every tier to have at least one requirement and one benefit; a DRAFT program cannot be archived directly. Only the program's vendor organization, or the partner organization that created it, can change its status. Archiving stops new enrollments but leaves existing enrollment records in place.

upload_ecosystem_sub_checklist_file

ChatGPT
Attaches a file to a sub-checklist — required before a requiresFile sub-checklist can be marked complete. The file content is base64-encoded (a data-URI prefix is tolerated) and must stay under 3 MB; the server stores it in the same location the ChannlViz upload flow uses. Prefer PDF or image formats for review documents.

void_channlsign_document

ChatGPT
Voids a sent ChannlSign document — only the document's creator may void it, with a reason of at least 5 characters. All signers are notified, the document status becomes VOIDED, and no further signatures are accepted.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps