What are the Foundational Steps to Implement Pipedream Connect in My App from Scratch?

“Legacy Slack” typically refers to an older version of the Slack integration or app on a platform like Pipedream. Over time, Slack has updated its APIs and authentication methods, so some integrations are marked as “legacy” to indicate they use older technology or methods that may eventually be deprecated. Are there others? Yes, besides “Legacy Slack,” there is usually a newer or “current” Slack integration that uses the latest Slack APIs and recommended authentication (such as OAuth 2.0). On Pipedream, you might see both a “Slack (Legacy)” app/component and a regular “Slack” app/component. The newer version is recommended for most use cases. Summary: - “Legacy Slack” = older integration, may use outdated APIs or authentication. - There is a newer Slack integration that is recommended for new workflows. - If you are starting a new project, use the current Slack app/integration. If you have a specific use case or see multiple Slack options in Pipedream and are unsure which to use, let me know or visit Support - Pipedream for more help.

where to see HubSpot Fields? way i mapped not working

It sounds like you’re having trouble mapping HubSpot fields in your Pipedream workflow. Here’s how you can find and verify HubSpot fields to ensure your mapping works: ## How to See HubSpot Fields 1. In HubSpot: - Go to your HubSpot dashboard. - Navigate to the object you’re working with (e.g., Contacts, Companies, Deals). - Click on “Settings” (gear icon) > “Objects” > select the object (e.g., Contacts). - Under “Properties,” you’ll see a list of all fields (properties) for that object. This is where you can view the internal names and types. 2. Via HubSpot API: - You can use the HubSpot API to list all properties for an object. For example, to get all contact properties: GET https://api.hubapi.com/properties/v2/contacts/properties - You can run this request in a Pipedream code step using your HubSpot connection to see the exact property names. Example Pipedream code step to list contact fields: import { axios } from "@pipedream/platform"; export default defineComponent({ props: { hubspot: { type: "app", app: "hubspot", }, }, async run({ steps, $ }) { return await axios($, { url: "https://api.hubapi.com/properties/v2/contacts/properties", headers: { Authorization: `Bearer ${this.hubspot.$auth.oauth_access_token}`, }, }); }, }); - The response will include all field names and internal property names you should use in your mapping. ## Common Mapping Issues - Internal Names: HubSpot uses internal property names (like firstname, lastname, email). Make sure you’re mapping to these, not the display names. - Data Types: Ensure the data you’re sending matches the expected type (e.g., string, number, date). - Required Fields: Some fields may be required by HubSpot. Double-check that you’re providing all required data. ## If You’re Still Having Issues If you’re still having trouble, please visit Support - Pipedream for more help. You can share the error message and how you’re mapping fields for more specific troubleshooting. — Summary: - View HubSpot fields in the HubSpot dashboard under “Properties” or fetch them via the API. - Always use the internal property names when mapping. - If mapping still fails, check types and required fields, or reach out to Pipedream Support.

where can i see list of all integrations

You can see the full list of all Pipedream integrations (apps) by visiting the Pipedream Apps Directory. This page lists every app you can use in your workflows, including both free and premium integrations. If you’re looking for premium apps specifically, you can also review the Premium Apps section in the documentation. If you don’t see an integration you need, you can let the Pipedream team know or contribute your own integration to the open-source Pipedream registry. Summary: - See all integrations at Integrated APIs & Applications - Pipedream - Premium apps info: Overview - Pipedream - Missing an integration? Contact support

can i use pipedream mcp for connect? like give ability to my users to use mcp to make integrations with apps i dont usually offer?

Yes, you can use Pipedream MCP (Multi-Connector Platform) to give your users the ability to connect and integrate with thousands of apps—even those you don’t natively offer in your own product. How it works: - Pipedream MCP acts as a universal connector. You can add the MCP server to your application or agent, allowing your users to make tool calls to 10,000+ APIs and tools via Pipedream. - User Authentication is built-in: Pipedream Connect (which powers MCP) handles user authentication for every MCP server, so you don’t need to build your own OAuth/token storage or refresh logic. Your users can securely connect their accounts to any supported app. - End-user experience: Your users can connect their accounts and build integrations using the MCP server, even for apps you don’t directly support. Getting Started: - You can use Pipedream’s hosted MCP servers (like mcp.pipedream.com), or host your own MCP server for your app or organization. - Try out the experience in the demo app. Docs for reference: - Add Pipedream MCP to your app or agent - User account connections and authentication Summary: You can absolutely use Pipedream MCP to let your users connect and integrate with apps you don’t natively offer, with authentication and integration logic handled by Pipedream. If you need more details or help getting started, see the MCP documentation or visit Support - Pipedream for support.

how to / Disable “Sent via Pipedream Connect” footer

Currently, there is no public documentation on disabling or customizing the “Sent via Pipedream Connect” footer. This footer is typically included in emails or messages sent via Pipedream Connect to indicate the integration’s origin. If you need to remove or customize this footer for your use case, you should contact Pipedream support directly to discuss your requirements or request this feature: Support - Pipedream If you have further questions or need more details, please let me know!

trying to send as block but only getting new visitor text. logs show - POST /v1/organizations/57a9dbab-f764-44e4-8e13-3dced1ac16d9/integrations/69ba30b0-b162-43b4-a5ab-2618eace6467/test
dataapi | [Integration Test] Run payload: {
dataapi | “id”: “slack-send-block-kit-message”,
dataapi | “externalUserId”: “org_57a9dbab-f764-44e4-8e13-3dced1ac16d9”,
dataapi | “configuredProps”: {
dataapi | “slack”: {
dataapi | “authProvisionId”: “apn_z8hdLn9”
dataapi | },
dataapi | “channelType”: “Channels”,
dataapi | “conversation”: “C07K27PUYTU”,
dataapi | “passArrayOrConfigure”: “array”,
dataapi | “blocks”: [
dataapi | {
dataapi | “type”: “section”,
dataapi | “text”: {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “John Doe\n_Test Company Inc._\nProduct Manager”
dataapi | },
dataapi | “accessory”: {
dataapi | “type”: “image”,
dataapi | “image_url”: “https://example.com/photo.jpg”,
dataapi | “alt_text”: “John Doe”
dataapi | }
dataapi | },
dataapi | {
dataapi | “type”: “context”,
dataapi | “elements”: [
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:large_green_circle: Full Profile”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:fire: high Intent”
dataapi | }
dataapi | ]
dataapi | },
dataapi | {
dataapi | “type”: “divider”
dataapi | },
dataapi | {
dataapi | “type”: “section”,
dataapi | “fields”:
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: ":e-mail: Email[ntest@example.com
"
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:iphone: Phone\n+14155551234”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:round_pushpin: Location\nSan Francisco, California, United States”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:briefcase: LinkedIn\n<https://linkedin.com/in/johndoe|View Profile>”
dataapi | }
dataapi | ]
dataapi | },
dataapi | {
dataapi | “type”: “divider”
dataapi | },
dataapi | {
dataapi | “type”: “section”,
dataapi | “text”: {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:bar_chart: Engagement
dataapi | }
dataapi | },
dataapi | {
dataapi | “type”: “section”,
dataapi | “fields”: [
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “Sessions\n5”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “Pageviews\n23”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “Pricing Views\n3”
dataapi | }
dataapi | ]
dataapi | },
dataapi | {
dataapi | “type”: “divider”
dataapi | },
dataapi | {
dataapi | “type”: “section”,
dataapi | “text”: {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:link: Source & Journey
dataapi | }
dataapi | },
dataapi | {
dataapi | “type”: “section”,
dataapi | “text”: {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “Referrer: Google Search** google / cpc / brand_awareness\nLanding Page: https://example.com/features
dataapi | }
dataapi | },
dataapi | {
dataapi | “type”: “divider”
dataapi | },
dataapi | {
dataapi | “type”: “section”,
dataapi | “text”: {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:office: Company
dataapi | }
dataapi | },
dataapi | {
dataapi | “type”: “section”,
dataapi | “fields”:
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: "Website[ntestcompany.com
"
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “Size\n50-200”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “Industry\nTechnology”
dataapi | }
dataapi | ]
dataapi | }
dataapi | ],
dataapi | “include_sent_via_pipedream_flag”: false,
dataapi | “text”: “New visitor: test@example.com
dataapi | }
dataapi | }
dataapi | [Integration Test] Result: {
dataapi | “os”: ,
dataapi | “ret”: {
dataapi | “ok”: true,
dataapi | “channel”: “C07K27PUYTU”,
dataapi | “ts”: “1764721273.876499”,
dataapi | “message”: {
dataapi | “subtype”: “bot_message”,
dataapi | “text”: “New visitor: test@example.com|test@example.com>”,
dataapi | “username”: “Pipedream”,
dataapi | “type”: “message”,
dataapi | “ts”: “1764721273.876499”,
dataapi | “bot_id”: “B094U3CGS2X”,
dataapi | “app_id”: “AN9231S6L”,
dataapi | “blocks”: [
dataapi | {
dataapi | “type”: “section”,
dataapi | “block_id”: “lcOjb”,
dataapi | “text”: {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “New visitor: test@example.com|test@example.com>”,
dataapi | “verbatim”: false
dataapi | }
dataapi | }
dataapi | ]
dataapi | },
dataapi | “response_metadata”: {
dataapi | “scopes”: [
dataapi | “identify”,
dataapi | “commands”,
dataapi | “channels:history”,
dataapi | “groups:history”,
dataapi | “im:history”,
dataapi | “mpim:history”,
dataapi | “channels:read”,
dataapi | “emoji:read”,
dataapi | “files:read”,
dataapi | “groups:read”,
dataapi | “im:read”,
dataapi | “mpim:read”,
dataapi | “reactions:read”,
dataapi | “reminders:read”,
dataapi | “search:read”,
dataapi | “stars:read”,
dataapi | “team:read”,
dataapi | “users:read”,
dataapi | “users:read.email”,
dataapi | “usergroups:read”,
dataapi | “users.profile:read”,
dataapi | “channels:write”,
dataapi

answer trying to send as block but only getting new visitor text. logs show - POST /v1/organizations/57a9dbab-f764-44e4-8e13-3dced1ac16d9/integrations/69ba30b0-b162-43b4-a5ab-2618eace6467/test
dataapi | [Integration Test] Run payload: {
dataapi | “id”: “slack-send-block-kit-message”,
dataapi | “externalUserId”: “org_57a9dbab-f764-44e4-8e13-3dced1ac16d9”,
dataapi | “configuredProps”: {
dataapi | “slack”: {
dataapi | “authProvisionId”: “apn_z8hdLn9”
dataapi | },
dataapi | “channelType”: “Channels”,
dataapi | “conversation”: “C07K27PUYTU”,
dataapi | “passArrayOrConfigure”: “array”,
dataapi | “blocks”: [
dataapi | {
dataapi | “type”: “section”,
dataapi | “text”: {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “John Doe\n_Test Company Inc._\nProduct Manager”
dataapi | },
dataapi | “accessory”: {
dataapi | “type”: “image”,
dataapi | “image_url”: “https://example.com/photo.jpg”,
dataapi | “alt_text”: “John Doe”
dataapi | }
dataapi | },
dataapi | {
dataapi | “type”: “context”,
dataapi | “elements”: [
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:large_green_circle: Full Profile”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:fire: high Intent”
dataapi | }
dataapi | ]
dataapi | },
dataapi | {
dataapi | “type”: “divider”
dataapi | },
dataapi | {
dataapi | “type”: “section”,
dataapi | “fields”:
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: ":e-mail: Email[ntest@example.com
"
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:iphone: Phone\n+14155551234”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:round_pushpin: Location\nSan Francisco, California, United States”
dataapi | },
dataapi | {
dataapi | “type”: “mrkdwn”,
dataapi | “text”: “:briefcase: LinkedIn\n<https://linkedin.com/in/johndoe|View Profile>”
dataapi | }
dataapi | ]
dataapi | },
dataapi

It looks like you’re trying to send a Slack message using Block Kit, but you’re only seeing a “new visitor” text (or a default/simple message) instead of your custom blocks. Based on your logs and payload, your blocks array is well-formed, so the issue is likely with how the message is being sent to Slack. ### Common Issues and Solutions #### 1. Check the API Method Make sure you’re using the correct Slack API method: chat.postMessage is required for sending blocks to a channel. #### 2. Payload Structure Your payload should include: - channel: the channel ID (e.g., "C07K27PUYTU") - blocks: your array of block objects Do NOT include both text and blocks unless you want a fallback for clients that don’t support blocks. If you do, text should be a simple string. #### 3. Example Pipedream Code Step Here’s a working example using Pipedream’s Node.js code step, based on the docs: import { axios } from "@pipedream/platform"; export default defineComponent({ props: { slack: { type: "app", app: "slack", }, channel: { type: "string", label: "Channel ID", description: "The Slack channel ID (e.g., C07K27PUYTU)", }, blocks: { type: "string[]", label: "Blocks (as JSON strings)", description: "Each item should be a JSON string representing a block object.", }, }, async run({ $ }) { // Parse blocks from string[] to objects const blocks = this.blocks.map(b => JSON.parse(b)); return await axios($, { method: "POST", url: "https://slack.com/api/chat.postMessage", headers: { Authorization: `Bearer ${this.slack.$auth.oauth_access_token}`, }, data: { channel: this.channel, blocks, }, }); }, }); How to use: - Pass your channel ID as channel - Pass your blocks as an array of JSON strings (each stringified block object) #### 4. Troubleshooting Tips - Check for errors in the response: Slack will return errors if the payload is malformed or if the bot doesn’t have permission to post to the channel. - Verify bot permissions: The bot must be a member of the channel and have the chat:write scope. - Test with a simple block: Try sending just a single section block to verify basic functionality. #### 5. Example Minimal Payload on { "channel": "C07K27PUYTU", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "**John Doe**\n_Test Company Inc._\nProduct Manager" } } ] } — If you’re still only seeing the default “new visitor” text, double-check: - The API method (chat.postMessage) - That you’re not using a legacy endpoint or a custom integration that ignores blocks - The bot’s permissions in the target channel If you continue to have trouble, please provide the exact response from Slack’s API for more targeted help, or visit Support - Pipedream for more support options.