MCP App Store
by KeenEthics
Lunelink icon

Lunelink

By Lunelink GmbH

Get New App Alerts

Overview

Lunelink is the all-in-one platform small businesses use to run their operation — customers and deals, an email inbox, phone calls, appointment bookings, website forms and analytics, and Meta ads — in one workspace. This connector lets your AI assistant work in it with your own account's permissions: find customers and their full history, add notes, move deals through your pipeline, read and search your inbox, draft, reply to and send emails, review calls and form submissions and assign them to customers, find free times and book, move or cancel appointments, read your website's visitor numbers, adjust Meta ad sets, publish ads from your creatives and upload video creatives. Before anything reaches people or costs money — an email sent, a call placed, an appointment booked or changed, an ad budget or status changed — the assistant shows what will happen and asks first. Sign-in data, API keys and WhatsApp are never accessible. Disconnect anytime under Account → AI apps.

Tools

add_email_attachment

ChatGPT
Attach a file to a draft: get an upload address with create_upload_url, upload the file in slices as its result describes, then pass the slice hashes here with the file name. All attachments of a draft stay under 10 MB together. Returns the attachment with its ID, type and size; get_email lists every attachment of the draft.

add_email_domain

ChatGPT
Add a domain the workspace sends and receives e-mails with, such as muster.de, and set it up at Lunelink's e-mail provider. Returns the domain with the four DNS records to set at the domain's DNS provider; check_email_domain then checks them. A subdomain is added as its own domain. Needs the workspace's admin role.

add_note

ChatGPT
Add an internal note to a customer's history. Notes are only visible to the members of the workspace.

assign_to_contact

ChatGPT
Assign an e-mail, a call, an appointment booking or a form submission to a contact, so it shows in the contact's history; without contactId the assignment is removed. Find the contact with search_contacts first.

assign_to_customer

ChatGPT
Assign an e-mail, a call, an appointment booking or a form submission to a customer, so it shows in the customer's history; without customerId the assignment is removed. Find the customer with search_customers first.

cancel_booking

ChatGPT
Cancel an appointment; the attendee and the organizers receive a cancellation e-mail. Get the user's confirmation first, unless they just asked for exactly this cancellation.

check_email_domain

ChatGPT
Finish the setup of an e-mail domain at Lunelink's e-mail provider where it stopped, then check its four DNS records. Returns the domain with each record's state: OK, PROPAGATING (set, but not visible yet: check again later), MISSING, INVALID (set, but wrong) or PENDING (not checked yet). Sending works once DKIM is OK, receiving once MX is OK. Needs the workspace's admin role.

clear_creative_place

ChatGPT
Remove the image or video from one place (format) of a creative; an asset it came from stays. Not possible while a generation runs.

create_ad

ChatGPT
Publish an image or video creative as a new ad in a Meta ad set, with the creative's texts, call to action and AI label. The ad delivers and spends once Meta has approved it, unless its ad set or campaign is paused. Get the user's confirmation of ad set, creative and link first, unless they just asked for exactly this ad. A video ad takes about a minute.

create_ad_campaign

ChatGPT
Create a new Meta campaign for lead generation in an ad account of the workspace; it has no ad sets yet, create_ad_set adds them. Without a campaign budget every ad set carries its own budget; a daily or lifetime campaign budget is shared by its ad sets, which then carry none, and a lifetime budget needs an end on every ad set. Special ad categories declare ads about employment, housing, financial products or politics for the named countries where Meta requires that declaration; leave them out otherwise. Budgets are in cents of the ad account's currency. The campaign delivers nothing until an ad set with an approved ad exists; set_ad_status pauses or activates it.

create_ad_set

ChatGPT
Create a new Meta ad set in a campaign, optimizing for a custom conversion event of a Meta pixel (billed per impression at the lowest cost). Name, budget, pixel, conversion event and locations come from the arguments, placements, the Advantage+ audience switch and the EU DSA names are optional, and assigned audiences and detailed targeting stay empty; duplicate_ad_set copies those from an existing ad set instead. The budget is left out when the campaign holds one; a lifetime budget needs endTime. locations: each entry is either a circle (latitude, longitude, radiusKm) or a whole country (countryCode); circles must not overlap. Budgets are in cents of the ad account's currency. The new ad set has no ads, so it delivers nothing until create_ad publishes one into it.

create_booking

ChatGPT
Create an appointment with a customer. The attendee immediately receives a confirmation e-mail with a calendar invitation, for a VIDEO_CALL with the link to its video room; for a PHONE_CALL the organizer calls the attendee, who then needs a phone number. Without organizerUserIds the user is the organizer. Check find_free_times first and get the user's confirmation of time, length, type and attendee, unless they just asked for exactly this appointment.

create_calendar_entry

ChatGPT
Add an appointment to the user's own calendar, also a repeating one; nobody is invited or notified. Pass startDate, and endDate for several days, for an all-day appointment, or startTime and endTime as UTC instants; list_calendar names the user's timezone. A busy appointment blocks its time for bookings of the user; set busy to false for one that does not, such as a birthday or a reminder. Returns the new appointment as list_calendar shows it.

create_contact

ChatGPT
Create a contact. Contact data of the company or household as a whole goes on the contact, the data of a contact person into a person. Phone numbers in international format, e.g. +491701234567. Returns the new contact's ID.

create_customer

ChatGPT
Create a customer. Contact data of the company or household as a whole goes on the customer, the data of a contact person into a person. Phone numbers in international format, e.g. +491701234567. Returns the new customer's ID.

create_deal

ChatGPT
Create a deal for a customer in a pipeline, optionally at a stage and with tags. A customer has at most one deal per pipeline. Returns the new deal's ID.

create_email_alias

ChatGPT
Create a sender address (alias) on one of the workspace's e-mail domains, such as info@ on muster.de, for the members who send from it. Needs the workspace's admin role. Returns the address.

create_email_draft

ChatGPT
Create an e-mail draft: a new e-mail, a reply or a forward. The user's signature is added below the text, and a reply or forward quotes the original. Nothing is sent: the draft appears in the DRAFTS folder and goes out only with send_email_draft. Returns the complete draft.

create_email_template

ChatGPT
Create an e-mail template at the end of the workspace's template list; create_email_draft starts a draft from it with templateId. Pass its text as plain text or in Lunelink's e-mail Markdown; a template has no placeholders. Needs the workspace's admin role. Returns the template.

create_folder

ChatGPT
Create a folder for files at the root level of a workspace's files or inside another folder; folders nest without limit, an empty folder is fine, names need not be unique. Returns the new folder.

create_image_creative

ChatGPT
Create an image creative: Lunelink sends the prompt verbatim to its image model and renders it as 1:1, 4:5 and 9:16 within a few minutes; list_creatives shows GENERATED when create_ad can publish it, and the user sees the images under Creatives in the app. Write the exact text the image shows into the prompt in quotes, keep text and logo centered with wide margins so that all three formats show them, and pass the logo as an input image in assetIds (list_creatives shows the assetIds of existing image creatives). The ad texts are stored exactly as given unless adCopyParts names the parts Lunelink derives from the rendered images and the prompt afterwards; with an image ad Meta shows only the first title, text and description. Pass aspectRatios to render only some formats; an empty list creates an empty frame (the prompt is stored for later) whose places set_creative_place fills with finished images.

create_pipeline_entry

ChatGPT
Create a pipeline entry for a contact in a pipeline, optionally at a stage and with tags. A contact has at most one pipeline entry per pipeline. Returns the new pipeline entry's ID.

create_upload_url

ChatGPT
Get an upload address for one file, valid for 5 minutes, for agents with a shell: upload the file in slices with curl as the result describes, then create the creative with create_video_creative.

create_video_creative

ChatGPT
Create a video creative from a file uploaded with create_upload_url: an mp4 or mov video of at most 180 seconds and 200 MB. Lunelink then derives the poster and the ad texts from the video within a few minutes; list_creatives shows the progress. Set aiGenerated when the video contains an AI voice or AI footage: Meta then labels the ad as AI-generated.

delete_calendar_entry

ChatGPT
Remove an APPOINTMENT from list_calendar; nobody is notified, and removing one taken over from an invitation does not answer the invitation. For an occurrence of a repeating appointment pass its recurrenceTime and a scope: OCCURRENCE removes only that occurrence, FOLLOWING that one and every later one, SERIES the whole series. FOLLOWING is not possible for an appointment with fromInvitationOrFile.

delete_creative

ChatGPT
Delete a creative for good; ads already published with it keep running. An image creative that another one uses as its source cannot be deleted.

delete_email_template

ChatGPT
Delete an e-mail template for good; drafts started from it keep their text. Needs the workspace's admin role.

delete_file

ChatGPT
Delete a file for good. A file a page widget, an image creative, a site, an employer profile or an e-mail signature or template still uses cannot be deleted; the error says so — then tell the user instead of removing the use.

delete_folder

ChatGPT
Delete a folder for good with its subfolders and the files in them. A file a page widget, an image creative, a site, an employer profile or an e-mail signature or template still uses is kept and moved into the deleted folder's parent folder (the root level when it had none); the result names that case.

derive_video_ad_copy

ChatGPT
Derive the call to action and ad texts of a video creative anew from the video that came into it first: Lunelink transcribes the speech, reads frames and replaces the selected parts within a few minutes; get_creative shows the progress. Not possible while processing runs or before the creative has a video.

discard_email_draft

ChatGPT
Discard a draft for good, together with its attachments.

duplicate_ad_set

ChatGPT
Create a new Meta ad set in the campaign of an existing one, with its pixel, conversion event, placements, audiences, detailed targeting and EU DSA names; name, budget and locations come from the arguments, the rest from the original, which stays unchanged. locations replaces the original's locations: each entry is either a circle (latitude, longitude, radiusKm) or a whole country (countryCode). Budgets are in cents of the ad account's currency. The new ad set has no ads, so it delivers nothing until create_ad publishes one into it.

duplicate_image_creative

ChatGPT
Create a new image creative with the name, prompt, input images and ad texts of an existing one and render all three formats from the prompt within a few minutes; the original stays unchanged.

empty_email_folder

ChatGPT
Delete every e-mail in a workspace's spam folder or trash for good, together with its attachments; it cannot be restored.

find_free_times

ChatGPT
Get when organizers are available and when they are busy in a period of at most 42 days: availableTimes follow their weekly availability, busyTimes are their appointments, blocked times and the events of their subscribed calendars. Without organizerUserIds it reads the user's own calendar. All times are UTC instants.

generate_image_creative

ChatGPT
Render selected formats of an image creative from its stored prompt and input images, and/or derive selected ad-text parts from all its images and the prompt. Rendered formats replace the image in their place, a finished image included; derived parts replace the stored ones; everything else stays. Runs in the background for a few minutes; get_creative shows the progress. Not possible while a generation is running.

get_contact

ChatGPT
Get one contact with contact data, persons and pipeline entries; each pipeline entry names its pipeline and stage by ID, list_pipelines names them.

get_contact_activity

ChatGPT
Get the history of a contact, newest first: notes, e-mails, calls, appointment bookings and form submissions assigned to the contact. Each entry carries its type (NOTE, EMAIL, CALL, BOOKING or SUBMISSION) and its time.

get_creative

ChatGPT
Get one image or video creative in full: its places (formats 1:1, 4:5 and 9:16) with size and origin, the prompt and input images of an image creative, the text spoken in a video, the status and selection of the latest generation, ad texts, call to action and AI label.

get_customer

ChatGPT
Get one customer with contact data, persons and deals; each deal names its pipeline and stage by ID, list_pipelines names them.

get_customer_activity

ChatGPT
Get the history of a customer, newest first: notes, e-mails, calls, appointment bookings and form submissions assigned to the customer. Each entry carries its type (NOTE, EMAIL, CALL, BOOKING or SUBMISSION) and its time.

get_email

ChatGPT
Get one e-mail with sender, recipients, subject, text, attachments and the other messages of its conversation. For a draft, markdownBody is the complete text that will be sent, including signature and quote.

get_email_attachment

ChatGPT
Get one attachment of an e-mail: its name, type and size, a download link that works without sign-in for 5 minutes, and its content where Lunelink can show it — an image (png, jpeg, webp or avif) as a picture to look at, the text of a PDF (a scanned PDF without text also as pictures of its first five pages) and the text of a text file such as txt, csv, ics, json or html. Download the file in a shell with curl --fail -o '<file name>' '<downloadUrl>'; otherwise give the user the link. Word, Excel and other files come as the link only.

get_email_settings

ChatGPT
Get the e-mail settings of a workspace: the signature every new draft starts with, the e-mail templates, the sender addresses with the members who send from them (mySenderAddresses are the user's own), the e-mail domains with the four DNS records each needs and their check state, and the address booking e-mails are sent from. Changing them needs the workspace's admin role.

get_email_source

ChatGPT
Get the original of a received e-mail as Lunelink received it: its header lines (the servers it passed, the authentication results, the provider's spam check) and a download link to the complete .eml file that works without sign-in for 5 minutes. Download it in a shell with curl --fail -o '<file name>.eml' '<downloadUrl>'; otherwise give the user the link. Drafts, sent e-mails and e-mails received before Lunelink kept originals have none.

get_file

ChatGPT
Get one file with its folder path, type, size, status, pixel size and public content URL, plus its content where Lunelink can show it: an image (png, jpeg, webp, avif) as a picture, a PDF's text (its first pages as pictures when it is a scan), the text of txt, csv, JSON, XML and other text files; videos, audio, office files, fonts and archives come with the URL only.

get_funnel_statistics

ChatGPT
Count the entries of a funnel per step: how many reached each step (visitorCount), how many stopped there (droppedCount), the average and median seconds until they moved on, and the transitions between steps. Bots are not counted. The filters narrow the entries: an entry counts when it matches every filter given and, within a filter, one of its values; an empty string matches entries without a value. Clicks on Meta ads usually arrive with utm_source (ig, fb, an …), utm_medium paid, utm_campaign = campaign ID, utm_term = ad set ID and utm_content = ad ID, so utmCampaigns, utmTerms and utmContents count the entries of campaigns, ad sets and ads.

get_site_analytics

ChatGPT
Get the visitor analytics of a website for a period, counted without cookies: current visitors, visitors, visits, page views, bounce rate, average visit length, a time series and the top sources, campaigns, pages, countries, devices and browsers.

list_ad_campaigns

ChatGPT
List the Meta ad accounts of a workspace with their campaigns, read fresh from Meta: status, budget and special ad categories. Budgets are in cents of the ad account's currency.

list_ad_sets

ChatGPT
List the ad sets of a Meta campaign, read fresh from Meta: status, learning phase, budget, end time, locations, placements and audience. Budgets are in cents of the ad account's currency.

list_ads

ChatGPT
List the ads of a Meta ad set, read fresh from Meta: status, texts, call to action, link, preview link and image.

list_bookings

ChatGPT
List the appointment bookings of a workspace that start in a period, earliest first, with attendee, organizers, meeting type, status and internal note; without a period the next 30 days. A VIDEO_CALL meets at https://app.lunelink.com/m/<meetingCode>.

list_calendar

ChatGPT
List the user's own calendar for a period of at most 92 days, earliest first; without a period the next 30 days. APPOINTMENT entries are the user's own appointments, BOOKING entries the appointment bookings the user organizes in any workspace, BUSY_TIME entries the busy times of external calendars the user subscribed to (read-only, without subject). An all-day entry carries startDate and endDate (its last day) in the user's timezone, which the result names; every other entry carries UTC instants. An occurrence of a repeating appointment carries recurrenceTime and recurrenceRule. Change an APPOINTMENT with update_calendar_entry or delete_calendar_entry, a BOOKING with reschedule_booking, cancel_booking or set_booking_note.

list_calls

ChatGPT
List the phone calls of a workspace, newest first, with direction, numbers, status, start and end, the member at the phone and the internal note. An open call is neither assigned to a customer nor marked as belonging to no customer.

list_creatives

ChatGPT
List the image and video creatives of a workspace, newest first, with status, ad texts, call to action and AI label. Only a GENERATED creative can be published with create_ad; a new video creative needs a few minutes until its texts are derived.

list_deals

ChatGPT
List the deals of a pipeline, newest first, each with its customer, stage, tags and the number and time of the customer's activities. A postponed deal carries postponedUntil.

list_emails

ChatGPT
List the e-mails of one folder of a workspace's mailbox, newest first, with sender, recipients, subject and a short preview. An open e-mail in INBOX or SENT is neither assigned to a customer nor marked as belonging to no customer.

list_files

ChatGPT
List the files ("Dateien") of a workspace with their folders: every folder with its parent and path, every file with ID, folder, path, name, type, size in bytes, processing status, pixel size and its public content URL. Pass folderId to list only one folder's direct content, query to find files and folders by words of their name or path. Images and videos get a thumbnail and web-ready variants from a background worker (status QUEUED, GENERATING, then GENERATED; FAILED or TIMED_OUT can be repeated with retry_file) — a file is usable right after the upload, never wait for GENERATED.

list_funnels

ChatGPT
List the funnels of a workspace with ID, name and the Meta conversion events configured for their steps. A funnel records the steps its entries reach, for example from the landing page to a registration; get_funnel_statistics counts them.

list_pipeline_entries

ChatGPT
List the pipeline entries of a pipeline, newest first, each with its contact, stage, tags and the number and time of the contact's activities. A pipeline entry postponed into the future carries that future postponedUntil; a past postponedUntil is when its last postponement ended.

list_pipelines

ChatGPT
List the deal pipelines of a workspace with their stages in order and their tags. A deal without a stage sits in the implicit first stage New.

list_sites

ChatGPT
List the websites of a workspace with ID, handle, custom domain and whether they are deactivated. A website is served at its custom domain, otherwise at https://lunelink.com/@<handle>.

list_submissions

ChatGPT
List the form submissions of a workspace, newest first: inquiries from the forms and quizzes on its websites, with contact data, answers and the page they came from. An open submission is neither assigned to a customer nor marked as belonging to no customer.

list_team_members

ChatGPT
List the members of a workspace with user ID, name, e-mail address and mobile number, for example to choose the organizers of an appointment.

list_workspaces

ChatGPT
List the user's Lunelink workspaces with ID, name and feature set. Every other tool needs a workspace ID or the ID of something inside a workspace. FULL workspaces have customers, deals, e-mail, calls, bookings, websites and ads; EMPLOYER workspaces only the hiring features. A workspace with licensed false cannot be used until the Lunelink team arranges a license.

mark_without_contact

ChatGPT
Decide that an e-mail, a call, an appointment booking or a form submission without a contact belongs to none, the app's „Ohne Kunden“: it stops being open, so it loses its mark and leaves the counts, and stays where it is. A draft cannot be marked. assign_to_contact still assigns it later; removing an assignment, or restoring an e-mail from the archive, spam or the trash, makes it open again.

move_deal

ChatGPT
Move a deal to another stage of its pipeline. Returns the deal.

move_email

ChatGPT
Move an e-mail to the archive, to spam or to the trash. Only received e-mails can go to spam.

move_files

ChatGPT
Move files and folders of a workspace into a folder or, without targetFolderId, to the root level; a folder moves with everything inside it. The target may be neither a moved folder nor inside one. Nothing else changes: names, types, URLs and every use of a file stay.

move_pipeline_entry

ChatGPT
Move a pipeline entry to another stage of its pipeline. Returns the pipeline entry.

remove_email_attachment

ChatGPT
Remove one attachment from a draft. Only a draft can be changed; a sent or received e-mail keeps its attachments.

remove_email_domain

ChatGPT
Remove an e-mail domain from Lunelink: its server and domain at the e-mail provider are deleted (a provider domain that existed before Lunelink set it up stays), then the domain together with every sender address on it. The workspace then neither sends nor receives e-mails with it. Needs the workspace's admin role.

rename_file

ChatGPT
Change the name of a file; its type, content and URL stay the same.

rename_folder

ChatGPT
Change the name of a folder; its content stays where it is.

reschedule_booking

ChatGPT
Move an appointment to a new time; the attendee and the organizers receive an e-mail with the updated invitation. Get the user's confirmation of the new time first, unless they just asked for exactly this change. Returns the booking.

restore_email

ChatGPT
Bring an e-mail back from the archive, spam or the trash to its home folder: a received e-mail to INBOX, a sent one to SENT. An e-mail without a contact becomes open again.

retry_creative

ChatGPT
Repeat the latest generation of a creative, typically after FAILED or TIMED_OUT: an image creative renders the same formats and derives the same ad-text parts again from its stored prompt, a video creative extracts the missing posters and derives the same ad-text parts again. The results replace the previous ones within a few minutes.

retry_file

ChatGPT
Queue the thumbnail and web-variant derivation of an image or video file again after FAILED or TIMED_OUT; the file itself stays unchanged. Other file types have nothing to process.

search_contacts

ChatGPT
Find the contacts of a workspace by name, e-mail address, phone number or the name of one of their persons; every word of the query must occur, case and accents do not matter. Without a query it lists the contacts. Returns each contact with ID, name, e-mail addresses, phone numbers and persons.

search_customers

ChatGPT
Find the customers of a workspace by name, e-mail address, phone number or the name of one of their persons; every word of the query must occur, case and accents do not matter. Without a query it lists the customers. Returns each customer with ID, name, e-mail addresses, phone numbers and persons.

search_email_addresses

ChatGPT
Search the addresses Lunelink suggests when an e-mail is addressed: the contacts and their persons first, then the people the workspace exchanged e-mails with outside spam and trash, most recent first, then the workspace's members. Every word of the query must occur in the name, the address or the contact's name; case and accents do not matter.

search_emails

ChatGPT
Search the e-mails of a workspace in every folder, newest first. Every word of the query must occur in the subject, the sender, a recipient, the text, the assigned customer's name or an attachment name; case and accents do not matter.

send_email_draft

ChatGPT
Send a draft for real; it then moves to SENT. Show the user sender, recipients, subject and text first and get their confirmation, unless they just asked for exactly this e-mail to go out.

set_ad_status

ChatGPT
Pause or activate a Meta campaign, ad set or ad. parentId is the ad account ID for a campaign, the campaign ID for an ad set and the ad set ID for an ad, as listed by list_ad_campaigns, list_ad_sets and list_ads. Activating starts delivery and spending: name what gets activated with its budget and get the user's confirmation first, unless they just asked for exactly this.

set_booking_note

ChatGPT
Write the internal note of an appointment booking, such as the preparation or the minutes; it replaces the current note, and an empty note removes it. Only the workspace's members see the note: the attendee never does, and nobody is notified.

set_booking_sender

ChatGPT
Set the address the workspace's booking e-mails are sent from — the confirmations, the reminders and the organizer of their calendar entries: a local part on one of the workspace's e-mail domains. It is used only while that domain is set up with an OK DKIM record; until then, and without a sender, they come from Lunelink's no-reply address, whose replies nobody reads. Leave out domainId and localPart to go back to it. Needs the workspace's admin role.

set_creative_ai_label

ChatGPT
Set whether new ads of a creative carry Meta's AI label ("AI info"). An image creative gets it with its first generated image; set it for a video with an AI voice or AI footage, and remove it only when no image or video of the creative contains AI-generated content. Ads already published keep their label.

set_creative_place

ChatGPT
Put a finished image or video unchanged into one place (format) of a creative, from an asset of the workspace (assetId) or from a file uploaded with create_upload_url (chunkHashes and filename). It must have the place's aspect ratio within 1 %: images png or jpeg up to 30 MB, videos mp4 or mov up to 600 seconds and 200 MB. It replaces what the place held and reaches Meta byte-identical. Afterwards Lunelink derives the ad-text parts named in adCopyParts in the background — for an image creative from all its images and the prompt, for a video creative from the video that came into it first —, by default the parts that are still empty; a video also gets its poster. Not possible while a generation runs.

set_funnel_meta_event

ChatGPT
Configure or replace the Meta conversion event of a funnel step: from then on, when an entry reaches the step for the first time, Lunelink sends the event once to the Meta pixel with the entry's ad click data and hashed contact data, and Meta can measure ads and optimize their delivery on it. pixelId may be left out when the workspace's Meta ad accounts have exactly one pixel. Removing an event stays in the Lunelink app. This shares visitor data with Meta: get the user's confirmation of step, event name and pixel first, unless they just asked for exactly this.

start_call

ChatGPT
Start a phone call: Lunelink first rings the user's own mobile phone (the number in their Lunelink account) and, once they answer, calls the given number from one of the workspace's phone numbers. Get the user's confirmation first, unless they just asked for this call. Returns the call's ID; list_calls shows its status.

update_ad_set

ChatGPT
Change the name, the budget or the locations of a Meta ad set; placements, audiences and targeting stay as they are. locations replaces all locations: each entry is either a circle (latitude, longitude, radiusKm) or a whole country (countryCode). Budgets are in cents of the ad account's currency. This changes delivery and spending: get the user's confirmation first, unless they just asked for exactly this change.

update_calendar_entry

ChatGPT
Change an APPOINTMENT from list_calendar: only the fields you pass change, everything else stays, and an empty string removes an optional text; nobody is notified. New days go in startDate and endDate, new times in startTime and endTime; passing only the start keeps the length, and passing the other pair turns an all-day appointment into one with times or back. For an occurrence of a repeating appointment pass its recurrenceTime and a scope: OCCURRENCE changes only that occurrence, FOLLOWING that one and every later one and SERIES every occurrence, both also the occurrences changed on their own and all moved by the same difference. An appointment with fromInvitationOrFile keeps its repetition: its recurrenceRule cannot change and FOLLOWING is not possible.

update_contact

ChatGPT
Change a contact: only the fields you pass are replaced, everything else stays. A passed list (emailAddresses, telephoneNumbers or persons) replaces the whole list, so include the entries that should stay. Returns the updated contact.

update_customer

ChatGPT
Change a customer: only the fields you pass are replaced, everything else stays. A passed list (emailAddresses, telephoneNumbers or persons) replaces the whole list, so include the entries that should stay. Returns the updated customer.

update_email_alias

ChatGPT
Set the members who send from a sender address: memberIds replaces its members. An empty list deletes the address, because an address exists only while a member holds it. Needs the workspace's admin role. Returns the address, or deleted when it is gone.

update_email_draft

ChatGPT
Change a draft: only the fields you pass are replaced. markdownBody replaces the complete text including signature and quote: take the draft's current markdownBody from get_email and change only what the user asked for. Returns the complete draft.

update_email_signature

ChatGPT
Replace the workspace's e-mail signature, which every new draft starts with; drafts already started keep theirs. Pass text for a new signature as plain text, or markdown: the signature from get_email_settings, changed only where the user asked, which keeps its formatting and images. Write {Vorname} and {Nachname} where the writing member's given and family name belong. An empty text removes the signature. Needs the workspace's admin role. Returns the signature.

update_email_template

ChatGPT
Change an e-mail template: only the fields you pass are replaced, an empty subject removes it. markdown replaces the whole text: take the template's markdown from get_email_settings and change only what the user asked; text replaces it with plain text. position moves the template in the list. Drafts already started from it keep their text. Needs the workspace's admin role. Returns the template.

update_image_creative

ChatGPT
Change an image creative: only the fields you pass are replaced, everything else stays; a passed list replaces the whole list. Renders nothing — generate_image_creative renders the stored prompt. Not possible while a generation is running (QUEUED or GENERATING): report that instead of waiting. Returns the updated creative.

update_video_creative

ChatGPT
Change the name, call to action or ad texts of a video creative: only the fields you pass are replaced, everything else stays; a passed list replaces the whole list. The videos stay unchanged. Not possible while processing runs (QUEUED or GENERATING): report that instead of waiting. Returns the updated creative.

upload_file

ChatGPT
Store a file uploaded with create_upload_url as a file of the workspace, at the root level or in a folder. Every file type is accepted, at most 200 MB; files other than raster images and videos at most 25 MB, videos at most 5 minutes. The type is detected from the bytes, the name's extension decides for ambiguous containers (docx vs zip, mp4 vs mov). Images and videos get their thumbnail and web variants within seconds to minutes in the background. Returns the stored file with its public content URL, which opens the file without sign-in.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps