# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Drip Integrations API version: 1.0.0 extends: openapi/drippay-integrations-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 82 - target: $.paths['/v1/webhooks/salesforce/{integrationId}'].post update: x-apievangelist-phrasing: intent: Receive Salesforce change events effect: write questions: - Where does Salesforce Change Data Capture send signed change events for my integration? - Are inbound Salesforce change notifications verified with an HMAC signature? instructions: - text: Deliver this signed Salesforce change-capture payload to integration {integrationId}. slots: integrationId: path.integrationId - text: Post a Salesforce CDC event to the webhook for integration {integrationId}. slots: integrationId: path.integrationId method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations'].get update: x-apievangelist-phrasing: intent: List marketplace and CRM integrations effect: read questions: - Which marketplace and CRM integrations are connected to my billing account? - Can I see all my cloud marketplace connections in one list? instructions: - text: List my marketplace and CRM integrations. - text: Show every metering integration I have set up. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations'].post update: x-apievangelist-phrasing: intent: Create a marketplace or CRM integration effect: write questions: - How do I connect AWS Marketplace metering to my usage billing? - Which marketplaces and CRMs can I create an integration for? - Are the secret config fields of a new integration ever returned on read? instructions: - text: Create an Azure Marketplace SaaS metering integration. - text: Set up a new GCP Marketplace integration for usage metering. - text: Add a Metronome usage ingestion integration. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/{id}'].get update: x-apievangelist-phrasing: intent: Get a marketplace integration effect: read questions: - What is the configuration and status of one specific integration? - Can I fetch a single marketplace integration by its ID? instructions: - text: Get integration {id}. slots: id: path.id - text: Show the settings of marketplace integration {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a marketplace or CRM integration effect: destructive questions: - Can I remove a marketplace integration I no longer use? - What's the way to delete a CRM integration by ID? instructions: - text: Delete integration {id}. slots: id: path.id - text: Remove the marketplace connection {id} entirely. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/{id}'].patch update: x-apievangelist-phrasing: intent: Rotate secrets or toggle an integration effect: write questions: - How do I rotate the secrets on an existing marketplace integration? - Can I pause an integration without deleting it? instructions: - text: Rotate the secrets on integration {id}. slots: id: path.id - text: Disable integration {id} for now. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/{id}/test'].post update: x-apievangelist-phrasing: intent: Test a marketplace integration connection effect: read questions: - Is my marketplace integration actually able to reach the provider? - Can I check a CRM integration's connection before sending usage? instructions: - text: Test the connection for integration {id}. slots: id: path.id - text: Verify that marketplace integration {id} can connect. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/{id}/usage'].post update: x-apievangelist-phrasing: intent: Submit a metered usage record to a marketplace effect: write questions: - How do I forward a usage record to a connected cloud marketplace? - Is an audit record kept even if the marketplace rejects my meter submission? - Are marketplace usage submissions idempotent? instructions: - text: Send this metered usage record through integration {id}. slots: id: path.id - text: Forward one usage record to the marketplace connected as {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/{id}/submissions'].get update: x-apievangelist-phrasing: intent: List recent meter submissions for an integration effect: read questions: - Which usage submissions were sent through a marketplace integration recently? - Can I see only the failed meter submissions for one integration? instructions: - text: List recent meter submissions for integration {id}. slots: id: path.id - text: Show the last {limit} submissions for integration {id} with status {status}. slots: limit: query.limit id: path.id status: query.status method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/test'].post update: x-apievangelist-phrasing: intent: Validate Stripe credentials without saving effect: read questions: - Can I check that my Stripe secret key works before connecting it? - Does validating Stripe credentials write anything to my account? instructions: - text: Validate my Stripe API key without saving anything. - text: Check my Stripe restricted key's tax and invoicing capabilities. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/connect'].post update: x-apievangelist-phrasing: intent: Connect a Stripe account with an API key effect: write questions: - How do I connect my Stripe account to Drip using a secret key? - What webhook URL do I paste into my Stripe dashboard after connecting by key? instructions: - text: Connect my Stripe account using this API key. - text: Connect Stripe by key and switch my tax provider to Stripe Tax. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/oauth/init'].post update: x-apievangelist-phrasing: intent: Start Stripe Connect OAuth quickstart effect: write questions: - Can I connect Stripe with an OAuth authorize link instead of pasting keys? - What happens if the Stripe quickstart feature isn't enabled for my workspace? instructions: - text: Generate a Stripe Connect authorize URL for quickstart onboarding. - text: Begin the Stripe OAuth quickstart flow. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/oauth/callback'].get update: x-apievangelist-phrasing: intent: Handle the Stripe Connect OAuth redirect effect: write questions: - Where does Stripe send the browser back after the Connect authorization? - Is the Stripe OAuth state verified before the integration is created? instructions: - text: Complete the Stripe Connect redirect and create the integration. - text: Process the Stripe OAuth callback code for my workspace. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/slack/install'].post update: x-apievangelist-phrasing: intent: Start the Slack OAuth install effect: write questions: - How do I connect my Slack workspace to Drip? - Can I begin a Slack OAuth install for comms ingestion? instructions: - text: Start the Slack OAuth install. - text: Begin connecting Slack for comms. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/slack/realtime/stream'].get update: x-apievangelist-phrasing: intent: Stream Slack realtime messages (realtime route) effect: read questions: - Can a desktop client subscribe to managed Slack messages on the realtime stream route? - Is there a realtime/stream endpoint for Slack messages? instructions: - text: Open the Slack realtime/stream feed for my desktop client. - text: Subscribe to managed Slack messages via the realtime stream route. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/slack/events/stream'].get update: x-apievangelist-phrasing: intent: Stream Slack realtime messages (events route) effect: read questions: - Is there a separate events/stream URL my desktop app can use to follow Slack messages? - Which Slack endpoint lives under the events path rather than realtime? instructions: - text: Open the Slack events/stream feed for my desktop client. - text: Connect my desktop app to the Slack messages feed on the events path. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/linkedin/realtime/stream'].get update: x-apievangelist-phrasing: intent: Stream LinkedIn realtime events (realtime route) effect: read questions: - Can a desktop client subscribe to LinkedIn events on the realtime stream route? - Is there a realtime/stream endpoint for LinkedIn events? instructions: - text: Open the LinkedIn realtime/stream feed for my desktop client. - text: Subscribe to managed LinkedIn events via the realtime stream route. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/linkedin/events/stream'].get update: x-apievangelist-phrasing: intent: Stream LinkedIn realtime events (events route) effect: read questions: - Is there a separate events/stream URL my desktop app can use to follow LinkedIn activity? - Which LinkedIn endpoint lives under the events path rather than realtime? instructions: - text: Open the LinkedIn events/stream feed for my desktop client. - text: Connect my desktop app to the LinkedIn activity feed on the events path. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/linkedin/events'].post update: x-apievangelist-phrasing: intent: Publish local LinkedIn events to desktop clients effect: write questions: - How do I push locally captured LinkedIn events out to my desktop clients? - Can I publish LinkedIn activity into the realtime feed? instructions: - text: Publish these local LinkedIn events to my desktop clients. - text: Push captured LinkedIn activity into the realtime feed. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/slack/callback'].get update: x-apievangelist-phrasing: intent: Handle the Slack OAuth redirect effect: write questions: - Where does Slack send users back after they approve the comms app? - What completes the Slack OAuth install for comms? instructions: - text: Finish the Slack OAuth install from the redirect. - text: Process the Slack authorization callback. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/gmail/install'].post update: x-apievangelist-phrasing: intent: Start the Gmail OAuth install effect: write questions: - How do I connect a Gmail inbox for comms ingestion? - Can I kick off Gmail OAuth for my business? instructions: - text: Start the Gmail OAuth install. - text: Begin connecting Gmail for comms. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/gmail/callback'].get update: x-apievangelist-phrasing: intent: Handle the Gmail OAuth redirect effect: write questions: - Where does Google send users back after approving Gmail access? - What finalizes the Gmail comms connection? instructions: - text: Finish the Gmail OAuth install from the redirect. - text: Process the Gmail authorization callback. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/calendar/callback'].get update: x-apievangelist-phrasing: intent: Handle the Google Calendar OAuth redirect effect: write questions: - Where does Google send users back after approving Calendar access? - What finalizes the Google Calendar comms connection? instructions: - text: Finish the Google Calendar OAuth connection from the redirect. - text: Process the Google Calendar authorization callback. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms'].get update: x-apievangelist-phrasing: intent: List comms integrations effect: read questions: - Which Slack, Gmail or calendar comms integrations are connected for my business? - Can I see all my communication channel connections? instructions: - text: List my comms integrations. - text: Show which communication channels are connected. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/slack/doctor'].get update: x-apievangelist-phrasing: intent: Diagnose the Slack comms integration effect: read questions: - Why aren't my Slack messages showing up in Drip? - Can I check the health of Slack OAuth and realtime events for my business? instructions: - text: Diagnose my Slack integration. - text: Run a health check on Slack OAuth, realtime events and stored state. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/messages'].get update: x-apievangelist-phrasing: intent: List recently ingested comms messages effect: read questions: - What messages have been ingested from my connected comms channels lately? - Can I filter ingested messages to one provider since a certain time? instructions: - text: List recent {provider} messages since {since}. slots: provider: query.provider since: query.since - text: Show ingested messages before {before}, {limit} per page, from cursor {cursor}. slots: before: query.before limit: query.limit cursor: query.cursor method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/slack/send'].post update: x-apievangelist-phrasing: intent: Send a Slack message effect: write questions: - Can I post a message to Slack through my connected business integration? - How do I send a Slack message to a specific channel or user from Drip? instructions: - text: Send {body} to {target} on Slack. slots: body: requestBody.body target: requestBody.target - text: Post a Slack message to {target} saying {body}. slots: target: requestBody.target body: requestBody.body method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/{id}'].delete update: x-apievangelist-phrasing: intent: Disconnect a comms integration effect: destructive questions: - How do I disconnect a Slack or Gmail comms integration? - Can I remove a communication channel connection? instructions: - text: Disconnect comms integration {id}. slots: id: path.id - text: Remove the communication channel connection {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/comms/{id}/sync'].post update: x-apievangelist-phrasing: intent: Trigger an immediate comms poll effect: write questions: - Can I force a comms integration to fetch new messages right now? - Is there a manual sync for a connected inbox? instructions: - text: Sync comms integration {id} now. slots: id: path.id - text: Trigger an immediate poll for comms connection {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/customers/{customerId}/comms/link'].post update: x-apievangelist-phrasing: intent: Attribute comms messages to a customer effect: write questions: - How do I link a contact's past and future messages to a customer record? - Can I manually attribute unmatched communications to a customer? instructions: - text: Link this handle's messages to customer {customerId}. slots: customerId: path.customerId - text: Attribute past and future comms from this contact to customer {customerId}. slots: customerId: path.customerId method: generated generated: '2026-09-26' - target: $.paths['/v1/sync/touches'].post update: x-apievangelist-phrasing: intent: Sync customer touches from the CLI effect: write questions: - Can I push a batch of customer touchpoints like iMessage and GitHub activity to Drip? - How many touches can be synced in one request? - What happens to touches whose email doesn't match any customer? instructions: - text: Sync this batch of communication touches from drip-cli. - text: Upload my latest customer touches, matched by email. method: generated generated: '2026-09-26' - target: $.paths['/v1/opens-since'].get update: x-apievangelist-phrasing: intent: List email opens since a timestamp effect: read questions: - Which tracked emails were opened since my last sync? - What's the maximum number of email opens returned per call? instructions: - text: List email opens since unix time {ts}. slots: ts: query.ts - text: Get up to {limit} email-pixel opens after {ts}. slots: limit: query.limit ts: query.ts method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/migrate/dry-run'].post update: x-apievangelist-phrasing: intent: Dry-run a Stripe data migration effect: read questions: - Can I preview what a Stripe migration would import before running it? - What would change if I migrated my Stripe data into Drip? instructions: - text: Do a dry run of the Stripe migration. - text: Preview migrating my Stripe billing data without committing. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/migrate/execute'].post update: x-apievangelist-phrasing: intent: Run a Stripe data migration effect: write questions: - How do I actually migrate my Stripe data into Drip? - Can I kick off the real Stripe import after the dry run looks good? instructions: - text: Execute the Stripe migration. - text: Run the Stripe import for real. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/migrate/status'].get update: x-apievangelist-phrasing: intent: Check Stripe migration status effect: read questions: - How far along is my Stripe migration? - Is the Stripe import still running? instructions: - text: Show the current Stripe migration status. - text: Check progress on the Stripe import. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/migrate/runs'].get update: x-apievangelist-phrasing: intent: List Stripe migration runs effect: read questions: - Which Stripe migrations have I run before? - Can I see the history of Stripe import runs? instructions: - text: List my Stripe migration runs. - text: Show past Stripe import runs. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/migrate/runs/{id}'].get update: x-apievangelist-phrasing: intent: Get a Stripe migration run effect: read questions: - What did one particular Stripe migration run import? - Can I look up a Stripe import run by ID? instructions: - text: Get Stripe migration run {id}. slots: id: path.id - text: Show the results of Stripe import run {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/migrate/runs/{id}'].delete update: x-apievangelist-phrasing: intent: Roll back a Stripe migration run (DELETE) effect: destructive questions: - Can I undo a Stripe migration run by deleting it? - Does deleting a Stripe migration run roll back what it imported? instructions: - text: Delete Stripe migration run {id} to roll it back. slots: id: path.id - text: Undo Stripe import run {id} with a DELETE on the run. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/migrate/runs/{id}/rollback'].post update: x-apievangelist-phrasing: intent: Roll back a Stripe migration run (rollback action) effect: destructive questions: - Is there a POST rollback action for reversing a Stripe migration run? - Can I call the rollback endpoint on a Stripe import run? instructions: - text: Call the rollback action on Stripe migration run {id}. slots: id: path.id - text: POST a rollback for Stripe import run {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/stripe/customers'].get update: x-apievangelist-phrasing: intent: List customers in the connected Stripe account effect: read questions: - Which customers exist in my connected Stripe account? - Can I browse Stripe customers before migrating them? instructions: - text: List customers from my connected Stripe account. - text: Show the Stripe customers available to migrate. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/import/dry-run'].post update: x-apievangelist-phrasing: intent: Dry-run a CSV import effect: read questions: - Can I validate a CSV import before anything gets written? - What would a CSV upload create if I imported it? instructions: - text: Do a dry run of this CSV import. - text: Preview importing my CSV file without committing. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/import/execute'].post update: x-apievangelist-phrasing: intent: Run a CSV import effect: write questions: - How do I import billing data from a CSV file? - Can I run the real CSV import after previewing it? instructions: - text: Execute the CSV import. - text: Import this CSV file for real. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/import/status'].get update: x-apievangelist-phrasing: intent: Check CSV import status effect: read questions: - Is my CSV import finished yet? - What's the current progress of the CSV import? instructions: - text: Show the current CSV import status. - text: Check progress on my CSV upload. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/import/runs'].get update: x-apievangelist-phrasing: intent: List CSV import runs effect: read questions: - Which CSV imports have I run in the past? - Can I see the history of CSV import runs? instructions: - text: List my CSV import runs. - text: Show past CSV imports. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/import/runs/{id}'].get update: x-apievangelist-phrasing: intent: Get a CSV import run effect: read questions: - What did one specific CSV import run create? - Can I look up a CSV import run by ID? instructions: - text: Get CSV import run {id}. slots: id: path.id - text: Show the results of CSV import {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/import/runs/{id}'].delete update: x-apievangelist-phrasing: intent: Roll back a CSV import run (DELETE) effect: destructive questions: - Can I undo a CSV import by deleting its run? - Does deleting a CSV import run remove the records it created? instructions: - text: Delete CSV import run {id} to roll it back. slots: id: path.id - text: Undo CSV import {id} with a DELETE on the run. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/import/runs/{id}/rollback'].post update: x-apievangelist-phrasing: intent: Roll back a CSV import run (rollback action) effect: destructive questions: - Is there a POST rollback action for reversing a CSV import? - Can I call the rollback endpoint on a CSV import run? instructions: - text: Call the rollback action on CSV import run {id}. slots: id: path.id - text: POST a rollback for CSV import {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/lead-sources/webhook/connect'].post update: x-apievangelist-phrasing: intent: Create or rotate the lead-source webhook effect: write questions: - How do I get a webhook endpoint and token for pushing leads into Drip? - Can I rotate the bearer token on my generic lead-source webhook? instructions: - text: Set up the generic lead-source webhook and give me its token. - text: Rotate the token on my lead-source webhook. method: generated generated: '2026-09-26' - target: $.paths['/v1/lead-sources/webhook/status'].get update: x-apievangelist-phrasing: intent: Get lead-source webhook status effect: read questions: - When did my generic lead-source webhook last receive leads? - Is there an error on my lead webhook connection? instructions: - text: Show the status of my generic lead-source webhook. - text: Check the last ingest time and error on my lead webhook. method: generated generated: '2026-09-26' - target: $.paths['/v1/lead-sources/webhook/leads'].get update: x-apievangelist-phrasing: intent: List leads received by the webhook effect: read questions: - Which leads have come in through my generic lead webhook? - Can I page through webhook leads in batches of up to 500? instructions: - text: List leads ingested by my generic lead webhook. - text: Get {limit} webhook leads starting at cursor {cursor}. slots: limit: query.limit cursor: query.cursor method: generated generated: '2026-09-26' - target: $.paths['/v1/connectors/leads/{connectionId}/ingest'].post update: x-apievangelist-phrasing: intent: Ingest a batch of leads via webhook effect: write questions: - How many leads can I send to the generic lead ingest endpoint per call? - What counts come back after I post leads to the webhook connection? instructions: - text: Ingest this batch of leads into generic connection {connectionId}. slots: connectionId: path.connectionId - text: Post these lead records to the lead connector {connectionId}. slots: connectionId: path.connectionId method: generated generated: '2026-09-26' - target: $.paths['/v1/lead-sources/clay/connect'].post update: x-apievangelist-phrasing: intent: Create or rotate the Clay lead webhook effect: write questions: - How do I set up a Clay webhook to send leads to Drip? - Can I rotate the Clay-branded lead source token? instructions: - text: Set up the Clay lead-source webhook. - text: Rotate my Clay webhook token. method: generated generated: '2026-09-26' - target: $.paths['/v1/lead-sources/clay/status'].get update: x-apievangelist-phrasing: intent: Get Clay lead webhook status effect: read questions: - Is my Clay lead webhook connected and receiving data? - When did Clay last push leads to me? instructions: - text: Show the status of my Clay lead webhook. - text: Check when Clay last sent leads. method: generated generated: '2026-09-26' - target: $.paths['/v1/lead-sources/clay/leads'].get update: x-apievangelist-phrasing: intent: List leads ingested from Clay effect: read questions: - Which leads have arrived from Clay? - Can I page through Clay-ingested leads for desktop sync? instructions: - text: List the leads ingested from Clay. - text: Get {limit} Clay leads after cursor {cursor}. slots: limit: query.limit cursor: query.cursor method: generated generated: '2026-09-26' - target: $.paths['/v1/connectors/clay/{connectionId}/ingest'].post update: x-apievangelist-phrasing: intent: Ingest leads from a Clay webhook effect: write questions: - Where does Clay post its leads for ingestion? - Can Clay push a batch of leads to my Clay connection? instructions: - text: Ingest these Clay leads into Clay connection {connectionId}. slots: connectionId: path.connectionId - text: Send this Clay webhook batch to {connectionId}. slots: connectionId: path.connectionId method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/salesforce/{id}/sync/accounts'].post update: x-apievangelist-phrasing: intent: Sync Salesforce Accounts into customers effect: write questions: - How do I pull Salesforce Accounts in as Drip customers? - Can I trigger an account sync from my Salesforce integration on demand? instructions: - text: Sync Salesforce Accounts to customers for integration {id}. slots: id: path.id - text: Run the Account sync on Salesforce integration {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/salesforce/{id}/sync/opportunities'].post update: x-apievangelist-phrasing: intent: Sync Salesforce Opportunities into contracts effect: write questions: - Can Salesforce Opportunities become contracts in Drip? - What turns closed Salesforce deals into billing contracts? instructions: - text: Sync Salesforce Opportunities to contracts for integration {id}. slots: id: path.id - text: Run the Opportunity sync on Salesforce integration {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/salesforce/{id}/sync/rollup'].post update: x-apievangelist-phrasing: intent: Push spend rollups to Salesforce effect: write questions: - Can I push each account's spend totals back into Salesforce? - What sends usage spend rollups to Salesforce Accounts? instructions: - text: Push per-Account spend rollups to Salesforce via integration {id}. slots: id: path.id - text: Update Salesforce with current spend totals for integration {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/salesforce/{id}/backfill'].post update: x-apievangelist-phrasing: intent: Backfill Salesforce Accounts and Opportunities effect: write questions: - How do I do a full historical import of Salesforce Accounts and Opportunities? - Does the Salesforce backfill use the Bulk API? instructions: - text: Run a full Salesforce backfill for integration {id}. slots: id: path.id - text: Bulk-import all Accounts and Opportunities through integration {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/salesforce/{id}/field-mappings'].get update: x-apievangelist-phrasing: intent: List Salesforce field mappings effect: read questions: - Which Salesforce fields are mapped for my integration? - Can I see the field mapping configuration for a Salesforce connection? instructions: - text: List field mappings for Salesforce integration {id}. slots: id: path.id - text: Show how Salesforce fields map on integration {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/salesforce/{id}/field-mappings'].post update: x-apievangelist-phrasing: intent: Create a Salesforce field mapping effect: write questions: - How do I map a new Salesforce field to Drip data? - Can I add a custom field mapping to my Salesforce integration? instructions: - text: Add a new field mapping to Salesforce integration {id}. slots: id: path.id - text: Create a Salesforce field mapping on integration {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/salesforce/{id}/field-mappings/{mappingId}'].delete update: x-apievangelist-phrasing: intent: Delete a Salesforce field mapping effect: destructive questions: - Can I remove a Salesforce field mapping I no longer need? - What's the way to delete one field mapping from a Salesforce integration? instructions: - text: Delete field mapping {mappingId} from Salesforce integration {id}. slots: mappingId: path.mappingId id: path.id - text: Remove mapping {mappingId} on integration {id}. slots: mappingId: path.mappingId id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/salesforce/{id}/field-mappings/{mappingId}'].patch update: x-apievangelist-phrasing: intent: Update a Salesforce field mapping effect: write questions: - Can I change which field an existing Salesforce mapping points to? - How do I edit a Salesforce field mapping? instructions: - text: Update field mapping {mappingId} on Salesforce integration {id}. slots: mappingId: path.mappingId id: path.id - text: Change the target field of mapping {mappingId} on integration {id}. slots: mappingId: path.mappingId id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero/connect'].post update: x-apievangelist-phrasing: intent: Start the Xero OAuth connection effect: write questions: - How do I connect Xero to push my revenue journals? - Can I start a Xero OAuth connection with PKCE? instructions: - text: Start connecting Xero. - text: Begin the Xero OAuth PKCE flow. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero/callback'].get update: x-apievangelist-phrasing: intent: Handle the Xero OAuth callback effect: write questions: - Where does Xero send users back after authorizing access? - What completes the Xero OAuth connection? instructions: - text: Complete the Xero OAuth callback. - text: Finish the Xero authorization from the redirect. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero'].get update: x-apievangelist-phrasing: intent: List Xero integrations effect: read questions: - Is Xero connected to my billing account? - Which Xero integrations do I have? instructions: - text: List my Xero integrations. - text: Show my Xero connection. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero'].delete update: x-apievangelist-phrasing: intent: Disconnect Xero effect: destructive questions: - How do I disconnect Xero from Drip? - Can I remove the Xero accounting integration? instructions: - text: Disconnect Xero. - text: Remove the Xero integration. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero/tenants'].get update: x-apievangelist-phrasing: intent: List connected Xero tenants effect: read questions: - Which Xero organizations are connected to my integration? - Can I see the Xero tenants available to push to? instructions: - text: List my connected Xero tenants. - text: Show which Xero organizations I can use. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero/test'].post update: x-apievangelist-phrasing: intent: Test the Xero connection effect: read questions: - Is my Xero connection still working? - Can I check the Xero integration before pushing journals? instructions: - text: Test my Xero connection. - text: Verify that Xero is reachable. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero/accounts/map'].post update: x-apievangelist-phrasing: intent: Map Xero account codes effect: write questions: - How do I map my revenue lines to Xero account codes? - Can I update the Xero chart-of-accounts mapping? instructions: - text: Save these Xero account-code mappings. - text: Update which Xero accounts my GL entries post to. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero/accounts'].get update: x-apievangelist-phrasing: intent: List the Xero chart of accounts effect: read questions: - What accounts are in my Xero chart of accounts? - Can I browse a Xero tenant's accounts before mapping them? instructions: - text: List the Xero chart of accounts. - text: Show the accounts available in my Xero tenant. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/xero/push/{exportId}'].post update: x-apievangelist-phrasing: intent: Push a GL export to Xero as manual journals effect: write questions: - How do I send a general ledger export into Xero? - Does a GL export land in Xero as manual journals? instructions: - text: Push GL export {exportId} to Xero. slots: exportId: path.exportId - text: Post export {exportId} to Xero as ManualJournals. slots: exportId: path.exportId method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks/connect'].post update: x-apievangelist-phrasing: intent: Start the QuickBooks Online OAuth connection effect: write questions: - How do I connect QuickBooks Online to Drip? - Can I start a QuickBooks OAuth connection with PKCE? instructions: - text: Start connecting QuickBooks Online. - text: Begin the QuickBooks OAuth PKCE flow. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks/callback'].get update: x-apievangelist-phrasing: intent: Handle the QuickBooks OAuth callback effect: write questions: - Where does QuickBooks send users back after authorizing access? - What completes the QuickBooks Online connection? instructions: - text: Complete the QuickBooks OAuth callback. - text: Finish the QuickBooks authorization from the redirect. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks'].get update: x-apievangelist-phrasing: intent: List QuickBooks integrations effect: read questions: - Is QuickBooks Online connected to my account? - Which QuickBooks integrations do I have? instructions: - text: List my QuickBooks integrations. - text: Show my QuickBooks Online connection. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks'].delete update: x-apievangelist-phrasing: intent: Disconnect QuickBooks effect: destructive questions: - Can I disconnect QuickBooks Online from my billing? - What removes the QuickBooks accounting integration? instructions: - text: Disconnect QuickBooks. - text: Remove the QuickBooks Online integration. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks/test'].post update: x-apievangelist-phrasing: intent: Test the QuickBooks connection effect: read questions: - Is my QuickBooks connection still working? - Can I check QuickBooks Online before pushing entries? instructions: - text: Test my QuickBooks connection. - text: Verify that QuickBooks Online is reachable. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks/accounts/map'].post update: x-apievangelist-phrasing: intent: Map QuickBooks account codes effect: write questions: - Which QuickBooks accounts should my revenue lines post to, and can I set that? - Can I update the QuickBooks account-code mapping? instructions: - text: Save these QuickBooks account-code mappings. - text: Update which QuickBooks accounts my journal entries post to. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks/accounts'].get update: x-apievangelist-phrasing: intent: List the QuickBooks chart of accounts effect: read questions: - What accounts are in my QuickBooks Online chart of accounts? - Can I browse QuickBooks accounts before mapping them? instructions: - text: List the QuickBooks chart of accounts. - text: Show the accounts available in QuickBooks Online. method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks/push/{exportId}'].post update: x-apievangelist-phrasing: intent: Push a GL export to QuickBooks as journal entries effect: write questions: - How do I send a general ledger export into QuickBooks Online? - Does a GL export land in QuickBooks as journal entries? instructions: - text: Push GL export {exportId} to QuickBooks. slots: exportId: path.exportId - text: Post export {exportId} to QuickBooks Online as JournalEntries. slots: exportId: path.exportId method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks/config'].patch update: x-apievangelist-phrasing: intent: Update QuickBooks integration settings effect: write questions: - Can QuickBooks push happen automatically instead of by hand? - What default item does the QuickBooks integration use, and can I change it? instructions: - text: Set the QuickBooks default item to {defaultItemId}. slots: defaultItemId: requestBody.defaultItemId - text: Turn QuickBooks auto-push to {autoPush} for integration {integrationId}. slots: autoPush: requestBody.autoPush integrationId: requestBody.integrationId method: generated generated: '2026-09-26' - target: $.paths['/v1/integrations/quickbooks/push-invoice/{invoiceId}'].post update: x-apievangelist-phrasing: intent: Push a Drip invoice to QuickBooks effect: write questions: - Can I send one of my invoices to QuickBooks Online as a native invoice? - What creates a QuickBooks invoice from a Drip invoice? instructions: - text: Push invoice {invoiceId} to QuickBooks. slots: invoiceId: path.invoiceId - text: Create a native QuickBooks invoice from invoice {invoiceId}. slots: invoiceId: path.invoiceId method: generated generated: '2026-09-26'