Help
Step-by-step help with attachments, client email and integrations in Rapportly.
Client folders, uploads and client login
One folder per client with all their reports and conversation bundles. So when you have a follow-up conversation, you'll find everything straight away.
Open Clients and select a client folder. Use Contact for client details, Submit files for submissions, Client sign-in for client access and Share with client to make documents available.
Send in documents by email
Give this client their own email address for sending in missing documents. Anything they mail there, such as a photo of their payslip, automatically ends up in this client's file.
- Email address:
Fill in this client's email address above. Without it their mail is ignored: only known senders get through.
- Create an intake address
This client can email missing documents to this address. The attachments automatically end up in their file. Photos of a payslip or annual statement are fine too.
An administrator must enable document intake for your office before clients can submit files by email.
This address is for documents from the client. Send recordings and transcripts to your office's delivery address on the conversation bundle.
Secure upload link
Give your client a link so they can send in their recording and documents themselves. They need no account and see nothing from their file.
- Create upload link
The link is ready. Send it to your client.
- Revoke
Anyone with the link can send files until the expiry date, but cannot view anything. Revoke the link once you are done.
The secure upload link is available from Pro+.
Client portal
Give your client their own login. They only see their own client folder, and within it only what you release. They can always upload.
- Email address:
First fill in this client's email address under client details; that is where the invitation goes.
- Invite client
Your client receives an invitation by email and signs in with a link. No password is involved.
- What your client can see
By default your client sees nothing from this client folder. Release each item you want them to see; you can always revoke it.
The client portal is available from Pro+.
Matching attachments for your client email
Promised to send a brochure, price list or another document during a conversation? Rapportly suggests the matching file from your document library for the draft email. Available from Pro+.
- Add your reusable documents
Go to My work → Attachments and add brochures, price lists or guides. Use clear file names.
- Create a conversation bundle
Use the transcript or your notes. Include your promise, for example: I will send you our maintenance contract brochure.
- Review the suggested attachments
Promised in this conversation shows matching documents. If no file is found, the promise appears under Still to provide.
- Prepare the client email
Prepare as draft downloads an email file with the suggested attachments. You can also download each file separately. Open in your email app does not include attachments automatically.
- Review and send
Open the draft in a compatible email app, enter the recipient and review the text and attachments. Remove any attachment that does not fit. Rapportly tells you if a file could not be added.
No direct mailbox connection is needed. Downloading creates a draft file; it does not place anything directly in your mailbox or send an email.
Review and send email
Connect your own Gmail mailbox and prepare a customer email with suggested attachments as a draft. The Gmail connection is available in a limited beta by invitation from Pro+.
Gmail drafts have been tested in practice. Sending after approval is still undergoing practical testing. Microsoft 365/Outlook is coming soon.
- Connect your mailbox
Go to My account → Connections and choose Gmail. To send from Rapportly, also choose Allow sending and complete confirmation. Google bundles creating and sending drafts in the same permission; Rapportly additionally requires your approval for each message.
- Check the preview
Open Send directly via Rapportly below your customer email. Enter the recipient and check the preview, including the subject, message, attachments and any Bcc.
- Approve this email
Choose Approve and send. If the message or recipient changes after review, you must check a new preview first.
- Follow the sending status
Rapportly puts the approved email in the sending queue. Your sending window determines when it is processed. You can follow its status in Automation.
You can also prepare a draft in Gmail and send it there yourself. Connecting a mailbox does not by itself approve a customer email. Other email providers will follow after their own practical tests.
Setup and troubleshooting
Do I need to configure anything at Google?
During the limited beta, Rapportly must first add your Google account to the test group. You then connect it yourself under My account → Connections. You do not need a Google Cloud project, API key or server configuration. Do not share your password with Rapportly.
Which account should I choose?
Choose the Gmail or Google Workspace account you want to send from. It can differ from your Rapportly sign-in address. Check the email address shown after connecting.
Could my company administrator be needed?
Yes. Your organisation may restrict access to connected apps. Ask your Google Workspace administrator to review Rapportly if Google says your organisation has blocked access.
Why do I need to grant permission again?
An existing draft connection does not yet have sending permission in Rapportly. Choose Allow sending to enable it. In the current Google testing mode, authorisation expires after seven days and you need to reconnect. You also need to grant permission again after revoking access.
Is every email sent automatically?
In this workflow, you review the preview and approve each email. Your sending window and any blocks under Automation still apply. Emails wait outside that window. Sent means the email provider has accepted the send request, not that the recipient has read the message.
How do I disconnect?
Go to My account → Connections and choose Disconnect for the mailbox. First check Automation for approved emails that are still waiting. Disconnecting does not delete drafts or sent messages already stored in Gmail.
Connect Zapier to Rapportly
Zapier can automatically pass a completed conversation summary or report to another system, such as your CRM, spreadsheet or team channel. Zapier is separate from client email: it does not send client email from your Rapportly mailbox.
The Rapportly app in Zapier is available as an invite-only beta from Pro+. You need an invitation to the Zapier app. Only the Rapportly account administrator can create the required API key.
- Request access to the Zapier app
Ask Rapportly for the invitation link and accept it with the Zapier account in which you want to build the automation. Rapportly is not yet listed in the public Zapier App Directory.
- Create an API key
In Rapportly, go to My account → Connections. Give the key a recognisable name, such as Zapier CRM, and choose New API key. Copy the key immediately: for security reasons it is shown only once.
- Connect Rapportly in Zapier
Create a new Zap, choose Rapportly as the starting app and paste the API key when Zapier asks you to connect. Do not share the key by email or chat or store it outside Zapier.
- Choose when the Zap starts
Choose Conversation completed to process completed conversation summaries, or Report completed for completed reports. Then choose the destination app and action, such as updating a CRM record or adding a spreadsheet row.
- Map the required fields and test
Map only the fields the destination system needs. Preferably test with synthetic data, check the result in the destination app and only then turn on the Zap.
- Check delivery
Under My account → Connections, Rapportly shows the active webhook and its latest delivery status. Zapier creates and removes that webhook automatically when you turn the Zap on or off.
You choose the destination system and the data sent to it in Zapier. Check in advance which client data is necessary and who has access. Revoking an API key in Rapportly immediately stops the connected transfer.
Setup and troubleshooting
Why can I not find Rapportly in Zapier?
The Zapier app is still an invite-only beta and is not publicly listed in the App Directory. First accept Rapportly's invitation link, then check that you are signed in to the correct Zapier account.
Can a team member create the API key?
No. Only the Rapportly account administrator can create and revoke API keys. The administrator can set up the connection or enter the key directly in Zapier.
Which data does Rapportly send?
That depends on the selected trigger and the fields you map in Zapier. A completed conversation summary or report can contain client data. Send only what is needed and verify that the destination system is covered by your privacy arrangements.
How do I stop the connection?
Turn off the Zap so its webhook is removed automatically. To stop access immediately and completely, revoke the corresponding API key under My account → Connections.
Can I connect without Zapier?
Yes. A technical administrator can use the Rapportly API and secure webhooks directly. For a standard CRM, spreadsheet or team-channel connection, Zapier is usually the simplest route.
Developer API
Connect your software to Rapportly through explicit actions for sources, processing, results and management. This guide describes the available API within the documented release limits. The user, rights, storage and credits remain tied to the Rapportly account.
The existing API baseline and the documented CRM extension are available after a controlled rollout within the release limits. The CRM production test covers saved searches, visit markers and trajectories; office templates were only read. Workflow language processing and history comparison were tested locally and in CI, but their full production behaviour is not established by this evidence. The downloadable guide states the exact evidence. This is not full website parity.
Prepare your integration in three steps
- 1Choose the user, environment and rights
Open Account → Integrations. Use a separate test key for the fictional simulator and a separate production key for real actions with fictional data. Ask the administrator to grant only required rights and an appropriate budget.
- 2Practise acceptance and failures
Use the simulator first. Then import the API contracts and review synthetic examples. Keep secrets in your own server settings; collection mutations are disabled by default.
- 3Follow a complete request
Save the input and request key, check acceptance and completion, read the result, download an available file and inspect usage. Run that trial only in a released environment.
Base URL
https://api.rapportly.io/api/rapportly/v1
The key belongs to a user
A key delegates the rights of one user. The administrator sets the environment, permission ceiling, monthly budget and expiry. A team member activates a prepared key and sees its secret once. Every request also checks current user, package and object permissions. Key management uses a user session; production actions use an API key. Store secrets on your server and revoke a lost key through Account → Integrations. Existing Zapier events follow their own contract.
GET https://api.rapportly.io/api/rapportly/v1/ping
Authorization: Bearer rply_<jouw_sleutel>Use concrete contracts and examples
The production OpenAPI describes concrete source contracts and labels partial inputs or responses. The inventory identifies schemas still open. The Postman collection defaults to an invalid address, empty credentials and disabled mutations. Import for review and send requests deliberately in a released environment with fictional data. Import has not yet been tested.
- Download the production OpenAPI
- Download the synthetic Postman collection
- Download the source-to-result and download guide
- Download the schema inventory with open items
JavaScript and Python clients
Download small clients without external dependencies for checking access, reading actions and usage, creating dossiers, uploading sources, starting reports/quotes/presentations, checking status and downloading output. The SDK supports this limited API subset; it does not provide full website parity. Installation and examples are included in each package's guide.
- SDK guide and installation
- JavaScript client (Node.js 22+)
- Python client (Python 3.11+)
- SHA-256 checksums
Keep the API key on your server and save the request identity before starting. The clients do not automatically retry paid requests. Temporary downloads receive no API key and are restricted to storage origins you have explicitly allowed. Existing permissions, budgets and release limits still apply.
Practise with fictional requests first
Create a separate test key and practise how your software handles a pending request, a result, a failure and an insufficient budget. The practice environment uses fixed example content and consumes no credits.
- In Account → Integrations, create or activate a key with the Test environment and the action permissions you want to practise.
- Request GET /test/scenarios. Choose an action id from the response; this list reflects your current key permissions.
- Send POST /test/opdrachten with only actie and scenario. Choose succes, verwerking_mislukt, creditbudget_bereikt or toegang_geweigerd. Use a separate Idempotency-Key for every new practice request.
- Save opdracht_id. When status is bezig, wait about five seconds before reading GET /test/opdrachten/{id}. Always check status: HTTP200 can also contain a failed processing result.
POST https://api.rapportly.io/api/rapportly/v1/test/opdrachten
Authorization: Bearer rply_test_<jouw_testsleutel>
Idempotency-Key: test-rapport-0001
Content-Type: application/json
{
"actie": "rapport.start",
"scenario": "succes"
}This example requires rapport.start to appear in your action list. After a connection problem, repeat the same body with the same Idempotency-Key.
- Download the practice environment guide
- Download the importable Postman practice collection
- Download the practice environment OpenAPI specification
You practise handling requests, waiting, retries and errors. No real files, AI processing, email or webhooks are produced. The practice environment does not prove actual document quality or credit settlement. Next, test the specific production actions with fictional data and a separate production key. Practice requests expire after seven days.
Fetch only what you need
Search accessible client folders, conversations and reports. Read /acties for connected actions and permissions, /gebruik for budget and reservations and /verzoeken for technical request history. Processing still in progress has no result yet. Report-file download links last 15 minutes; read the report again for a new link.
/pingCheck the key.
/gesprekken?zoek=&limiet=30&offset=0Search accessible conversations and browse the results.
/gesprekken/{id}Read conversation status and result.
/rapporten/{id}Read report status and result.
/rapporten?limiet=30&offset=0Browse accessible reports, optionally within one dossier.
/klanten?zoek=&limiet=30&offset=0Search accessible customer folders and retrieve their klantId.
Update customer management
Your software can update office templates, save personal searches, record a visit and create a trajectory. Use the appropriate management permissions and confirm each change. Read the current version first and retain the same request key if a response is lost. Replaying an old request must not revert a newer change. The production test checks searches, visits and trajectories, including cleanup and key revocation. Office templates were only read; writes were tested locally and in CI. The downloadable guide describes the four routes and their evidence limits.
Compare two saved versions
Compare two existing version numbers of the same saved report text field or conversation field without starting new AI processing. This contract was tested locally and in CI; the CRM production test does not establish comparison behaviour in production. Missing history is not replaced with the current text. Long differences are explicitly truncated to at most 8,000 characters per side. This does not compare PowerPoint, quotation calculations, cover letters or formatting. Current read permissions and privacy requirements still apply.
Request an estimate before starting
Use POST /generatieplan to request expected steps and credits for a report, quote or conversation bundle. The key needs gebruik:lezen. Rapportly uses the same calculation and team settings as the website.
An estimate starts no processing and charges no credits. It is not a guaranteed maximum price; also display uncertainties, such as unknown file-reading costs. Starting the actual task rechecks permissions and available credits.
Download the cost estimate guide with request example and response explanation
Start processing from your own software
The API connects case and document starts, uploads, audio and transcription, client folders, styles, output, workflows, Excel and targeted message actions. Each route has its own input, permissions, confirmation and version checks. Existing processing and credit accounting still apply. A start response proves receipt; read the specific status afterwards. The inventory identifies contracts still open.
Create a dossier first
Generate and save a unique UUID in your own software. Send PUT /dossiers/{id} with only naam (up to 200 characters). You receive 201 when it is created and 200 for an identical retry. The dossier belongs to the user and organisation linked to the key. Creating a dossier uses no credits. This route never overwrites anything: different input returns 409; an inaccessible or deleted dossier returns 404. GET /dossiers/{id} reads the current name and klant_id with read permission.
PUT https://api.rapportly.io/api/rapportly/v1/dossiers/00000000-0000-4000-8000-000000000002
Authorization: Bearer rply_<jouw_sleutel>
Content-Type: application/json
{ "naam": "Voorbeeldproject" }Report, quote or presentation
Start with dossierId and notities. tier is optional: basis, standaard or max. Without a style profile, the document uses neutral formatting. You can also supply an existing accessible stijlprofielId, klantId, bronOpnameIds or taal. The server checks that the selected style matches the document type. Quotes use your saved business settings and controlled quote numbering; the API does not send the quote to the customer.
/rapportenStart a report from your notes and available sources.
/offertesStart a quote. Quote numbering, permissions and credits follow the existing quote processing flow.
/presentatiesStart a presentation. Optional: presentatieOpties or bronRapportVersieId of an accessible completed report.
POST https://api.rapportly.io/api/rapportly/v1/rapporten
Authorization: Bearer rply_<jouw_sleutel>
Idempotency-Key: crm-rapport-2026-0001
Content-Type: application/json
{
"dossierId": "00000000-0000-4000-8000-000000000002",
"notities": "Team Atlas besprak de training. Noor plant de volgende bijeenkomst op donderdag.",
"tier": "standaard"
}Save versie_id from the response and poll GET /rapporten/{versie_id}, including for quotes and presentations. Files become available inside resultaat when status is klaar: resultaat.export_url is the PDF, resultaat.export_url_docx is the Word file and resultaat.export_url_pptx is the PowerPoint when available. Download links expire after 15 minutes. Fetch the result again for new links. If status is mislukt, do not automatically submit a new key; check the processing status and usage in Rapportly first.
Download the source-to-result and download guide
Upload your own style examples
Let your software submit one to three example files as a complete set. Rapportly uses the same file checks and style processing as the website. The task belongs to the linked user and uses that user’s storage and available credits.
- Send the files with a name, document type, personal or team sharing, explicit confirmation and a stable request key. A team style requires an administrator or team leader.
- Store the receipt ID and read the status. Receipt means the complete set is safely recorded; any required example review and approval follow separately.
- After an interruption, repeat exactly the same request. This does not create a second style. Incomplete uploads can be retried for thirty days and are safely removed afterward.
Download the style examples guide, including a multipart example and error handling
Connect your calendar or mailbox
Let the user approve access at Google or Microsoft. Your software can track the request and intentionally disconnect. Provider passwords and tokens stay out of API responses.
Use verbindingen:beheren for connections and agenda:lezen for events. Sending additionally requires a separate permission and intentional action.
Keep the request ID, idempotency key and current basis. Repeat a lost request exactly; an old disconnect must not remove a later connection.
You can also choose your default mailbox through the API. Both connection management and sending permission are required. Read the current preference and connection first; an old retry preserves a newer choice and existing outbox requests retain their sender.
Download the consent, events, disconnect and recovery guide
Conversation bundle from text
Send a transcript of at least one hundred characters. The response returns gesprek_id so you can follow the result. Optional fields: titel, tier, klantId, and taal.
POST https://api.rapportly.io/api/rapportly/v1/gesprekken
Authorization: Bearer rply_<jouw_sleutel>
Idempotency-Key: crm-gesprek-2026-0001
Content-Type: application/json
{
"transcript": "Team Atlas bespreekt uitsluitend een fictieve oefening. Het team plant een training en verzamelt algemene voorbeeldvragen zonder klantgegevens.",
"titel": "Kennismaking"
}Read existing language variants
Read existing language results. The documented workflow routes for starting, pausing, resuming and recovery were tested locally and in CI; the CRM production test does not verify language processing. Use them only in an environment released for that purpose. The original user, key, source and costs remain bound to the request. Current source status, permissions, budget and verified settlement remain required; an expired or deleted source does not authorise a new start. Bulk processing with a second language remains closed, including inherited settings. Paid completion of one missing translation outcome remains excluded.
GET https://api.rapportly.io/api/rapportly/v1/gesprekken/00000000-0000-4000-8000-000000000001/taalvarianten
Authorization: Bearer rply_<jouw_sleutel>Save the exact input and a unique Idempotency-Key for every new logical request. Most starts accept 8–128 safe characters; consent and native report revisions require at least 16. The examples therefore use at least 16. After a lost response, repeat the same body and key. A version or base conflict requires reading again and a deliberate choice. Create-only dossier and file uploads use their UUID for replay identity.
Receive a notification when processing completes
Have Rapportly send a notification to your server. It contains technical references; retrieve the content separately with appropriate read permissions. Your software no longer needs to ask for progress repeatedly.
- Create an HTTPS receiver on your server. Register it with POST /webhooks using a production key with webhooks:beheren. Use that same key for the processing you want notifications about.
- Verify the signature over the original message bytes and store every event id uniquely. Acknowledge the event only after storing it durably together with your follow-up task. Repeated events must not create duplicate tasks.
- Use GET /webhook-afleveringen and the details for each delivery. Rapportly retries temporary failures up to eight times. You can request one extra round after a problem. Accepted means your server accepted the notification; monitor subsequent processing in your system.
- Download the webhook guide with endpoints, limits and recovery steps
- Download the Node.js signature verification example
The fictional practice environment sends no real notifications. Test your receiver with fictional data and a separate production integration. The code example verifies the message; your server is responsible for storage and follow-up actions.
What does an error mean?
400Correct the input or Idempotency-Key.
401The key is missing, wrong, or revoked.
402Credits, budget or valid paid continuation are unavailable.
403The key, user, or plan lacks this permission.
404The item does not exist or is not visible to this user.
409Input, version or request has changed. Read the current state first.
429Wait and honor Retry-After.
503A source or processing service is not safely available. Read the status; repeat exactly only where the route contract permits it.
Protect the key and customer data
- Use the key only on your server, never in public browser code.
- Create a separate key for each integration and revoke old keys.
- Keep keys, results, and temporary download links out of public logs and chats.
- Store retrieved customer data according to your own system's access rules.
The inventory identifies partial schemas, and the downloadable guide describes limits and evidence for each action. A successful CRM test does not establish production behaviour for workflow language processing or history comparison. Multilingual bulk processing and paid completion of one missing translation outcome remain excluded. An API key does not grant additional user permissions; document comparison supports only the documented saved text fields.