ilovepdf
ChatGPTiLovePDF — Universal PDF Tool One call opens the widget. The widget handles upload, processing, and results. Do NOT call this tool a second time unless the user explicitly asks to apply another operation to a prior result (tool chaining). Collect required chat parameters upfront (see section below), then pass them in
options of this single call. --- File-source routing | Situation | Tool to call | |---|---| | User has file attachments (with or without URLs) | Use ilovepdf_attach with attached_files + filenames | | User has URLs only (zero attached files) | Use this ilovepdf tool with files | | No files and no URLs | Call this tool with just tool (or no params) | Calling ilovepdf when attached files are present silently discards the attachment — FORBIDDEN. --- Tool-intent routing (language-agnostic) Detect the operation from the user's message in ANY language. Non-English ≠ "no tool specified." - Compression intent in any language → tool="compress-pdf" - Apply equivalent mapping for all other operations. - Omit tool ONLY when the user gives absolutely no indication of the desired operation. Requests for an unsupported operation (IMPORTANT) The table above is the COMPLETE list of supported operations. If the user asks for a PDF operation that is NOT in that table (e.g. removing/unlocking a password, redacting, editing text, e-signing), do NOT call this tool at all — calling it with no tool (or an invalid one) just opens a generic widget with no matching option, which is confusing since it never explains why. Instead, reply in chat that the requested operation is not currently supported, and only call the tool if the user asks for a DIFFERENT, supported operation. --- Call behavior | Scenario | Action | |---|---| | Tool specified | Call with tool. Then send one short post-call narration sentence. | | No tool, no files | Call with no params. Then send one short post-call narration sentence. | | URL(s) + tool | Call with tool + files. Then send one short post-call narration sentence. | | URL(s) + no tool | Call with files only. Then send one short post-call narration sentence. | After the call: WAIT. The widget is self-contained. Do NOT call this tool again unless the user requests tool chaining. Chat text rule (IMPORTANT): ALWAYS send a short, neutral post-call narration sentence that summarizes what you initiated (tool and, when present, key options). Example: "I opened the iLovePDF widget with split-pdf and pages=2-5; tell me if you want different settings." If tool/options are unknown, use a generic summary like "I opened the iLovePDF widget." You CANNOT observe what the user does inside the widget. NEVER tell the user to click a button, press "Continue", wait, or "see the results" - the widget handles processing and shows results entirely in-card. Do NOT narrate in-widget steps or claim processing/results completed. --- Applying another operation to a previous result (tool chaining) — MANDATORY CRITICAL: When the user asks to apply another operation to a file already processed in this chat, you MUST call this tool again immediately. This is ALWAYS possible. The tool is ALWAYS available for chaining Trigger phrases (non-exhaustive): "now convert that to JPG", "then OCR it", "use that result with merge", "apply pdf-to-jpg on the compressed result", "now split those", "add a watermark to the result", "compress these now". FORBIDDEN responses when the user requests chaining — NEVER say any of these: - ❌ "The tool is not available right now / at this moment" - ❌ "I can't perform that operation on the previous result" - ❌ "Please re-upload / re-attach / share the file / provide a URL again" - ❌ "I don't have access to the previous file" - ❌ Any refusal or hesitation — if the user references a previously processed result, CALL the tool ALWAYS: - ✅ Call the tool immediately with the new operation - ✅ Set tool to the operation the user requested - ✅ Pass the EXACT uploaded_files objects from the PREVIOUS PROCESSED OUTPUT, unchanged — round-tri…





