Skip to main content

#Data3 人正在讨论

No native way to export the Columns tab from a Recipe Dataset Output node and you WANT THE SOURCE? Here's a console script that does it.

 

 

This downlaods a csv with the node name as the file name, all the columns (Name,API Name, Type,

and Source!!!) and all field rows.  

 

I'm a Business/Data Systems Analyst,

not

a developer. I hit a wall building a field-level data dictionary across too many CRMA recipes: there's no export button on the Recipe Output node's Columns tab, and the old trick of highlighting the table, finding the sweet spot to drag it into Excel doesn't seem to work anymore (and was frustrating and time consuming anyway even if it does). 

 

Querying the dataset via Workbench or the API gets you Name, API Name, and Type easily. It does not get you Source

(which Salesforce object a column originated from), at least not without manually tracing the recipe's own JSON node graph, join by join. If you actually need that Source column the way it displays on screen, querying alone won't get you there quickly. This makes it difficult to audit for duplicate fields in more complex recipes with loops. I mean, going to the output node and searching by field name and working backwards one by one .... UGH.  

 

So I used Claude AI to build a browser console script instead, worked through screenshot by screenshot, since I don't code. A few things that helped it actually go somewhere if anyone else wants to use AI to solve similar problems: 

 

  • Describing what I used to be able to do, not what I thought the tool should be called: "You could drag and drop it all into Excel if all highlighted and you you found the exact “sweet spot” on the screen to do so, but that must have been prevented or I can’t find the sweet spot anymore."
  • Sending screenshots of DevTools and error messages instead of typing out what I thought they meant
  • Saying flatly when something didn't work or I didn't understand a step, no guessing
  • Giving real scale before automating anything further: "We are at about XXX datasets across XX recipes and that is likely to grow", that's what got me steered away from clicking through the UI programmatically and toward a safer read-only approach
  • Asking directly: "Are there any security risks to doing this?" before trusting it enough to run, test, refine, and share

End result:

paste into DevTools Console while on a Recipe Output node's Columns tab, no coding needed. It reads the visible table and downloads a CSV named after the output node. Read-only, doesn't touch the org, doesn't call any API, just reads what's already rendered on your screen. Still manual, but much quicker.  

 

You do need to be on the Output Node with the Columns Preview selected (and preview loaded). 

 

No native way to export the Columns tab from a Recipe Dataset Output node and you WANT THE SOURCE? Here's a console script that does it.

 

 

 

#CRMAnalytics #Data Management #IdeaExchange

2 条评论
  1. 7月11日 09:03

    @Melissa Loudon Please follow the below steps:

     

    •  Open your CRM Analytics Recipe.
    •  Navigate to the Dataset Output node. 
    •  Open the Columns tab. 
    •  Wait until the preview has fully loaded. 
    •  Press F12 (Developer Tools). 
    •  Open the Console tab. 
    •  Paste the script below. 
    •  Press Enter
    •  A CSV file will automatically download.

    Below is the script: 

     

    (() => { 

        // Get output node name 

        let nodeName = "Recipe_Output"; 

     

        const title = 

            document.querySelector('[data-testid="recipe-node-title"]') || 

            document.querySelector('.recipe-node-title') || 

            document.querySelector('h1,h2,h3'); 

     

        if (title) { 

            nodeName = title.textContent.trim().replace(/[\\/:*?"<>|]/g, "_"); 

        } 

     

        // Find table 

        const table = document.querySelector("table"); 

     

        if (!table) { 

            alert("Columns table not found. Make sure the Output Node > Columns tab is open and fully loaded."); 

            return; 

        } 

     

        const rows = [...table.querySelectorAll("tr")]; 

     

        const csv = rows.map(row => { 

            return [...row.querySelectorAll("th,td")] 

                .map(cell => 

                    `"${cell.innerText.replace(/"/g, '""').trim()}"` 

                ) 

                .join(","); 

        }).join("\n"); 

     

        const blob = new Blob([csv], { 

            type: "text/csv;charset=utf-8;" 

        }); 

     

        const link = document.createElement("a"); 

        link.href = URL.createObjectURL(blob); 

        link.download = `${nodeName}.csv`; 

        document.body.appendChild(link); 

        link.click(); 

        document.body.removeChild(link); 

     

        console.log(`Downloaded ${nodeName}.csv`); 

    })();

0/9000

I have one existing experience cloud site on which kb artiles populate when user search, and they are listed under data categories. Also there is embedded serv deployment component a chat feature implemented using agentforce.

Now i want to make another experience cloud site havig functionality but i dont want the different articles to populate here. The data categories associated with first experience cloud should not appear in this one.

How can i restrict the exp cloud search?

For data categories, i think i can either use tooics, create them in workspace and associate the articles with topics in workspace-> content management. But i dont know how to configure the search?

#Experience Cloud #Knowledge Search #data categories #Knowledge Articles
0/9000

Hi there, 

 

In our Salesforce instance, all the currency fields that we pull into our forecast tab are different than the values that actually appear on the opportunity itself. 

 

We have multi-currency enabled, and our finance team adjusts the exchange rate monthly. Is this impacting the currency values in our forecast? If thats the case, why are the values different in the forecast view vs a report view of the same opportunities? Should they not be the same if the exchange rate is being applied to the opportunities?

 

Thanks in advance for any help. 

 

#Forecasting  #Data  #Data Management  #Sales Cloud

7 个回答
  1. 2025年12月15日 11:44

    Hi @Jesse Mejaski and @Bhavana Neelagiri

    The discrepancy you are seeing between the Forecasts Tab values, the actual Opportunity Record values, and Report values is a direct result of how Salesforce handles multi-currency exchange rates and two different rate types:

    The Two Types of Exchange Rates in Salesforce

    Salesforce uses two distinct mechanisms for currency conversion, which explains why your reports and forecasts show different values:

    1. Static/Historical Exchange Rates (Used by Opportunities/Reports):
      • When an Opportunity is closed/won, Salesforce locks in the exchange rate that was active on the Close Date of that opportunity. This is the historical exchange rate.
      • The Amount field on the Opportunity record itself always displays the original currency amount, but converted currency fields in standard reports use this historical locked-in rate. This ensures revenue numbers don't change retroactively every month.
    2. Advanced Currency Management Rates (Used by Collaborative Forecasts):
      • The Forecasts Tab uses Advanced Currency Management (ACM) rates (the monthly adjusted rates entered by your finance team). These are the current and dynamic exchange rates.
      • When you view an open (pipeline) Opportunity in the Forecasts tab, Salesforce converts that amount using the current effective exchange rate for that month's forecast period, not the historical rate.

    Why the Values Are Different in the Forecast Tab vs. Reports/Records

    • Opportunity Record/Standard Report View: Shows values converted using the historical exchange rate that was active on the close date (or today's rate if still open). These values are static.
    • Forecasts Tab View: Shows values converted using the current, dynamic ACM exchange rate that your finance team updated this month. These values change monthly as rates are updated.

    The system is behaving exactly as designed to provide a dynamic "pipeline value right now" view in forecasts, versus a static "actual recorded revenue value" view in closed opportunities and reports.

    How to Ensure Consistency (If Required)

    If your goal is to have all views show the exact same amount, regardless of the dynamic month-to-month changes in the forecast, you have two primary options:

    1. Align Reporting Currency: Ensure all users view reports in a single, common corporate currency (e.g., USD) using the Converted Currency field in reports, relying on the locked-in historical rate.
    2. Stop Monthly Rate Adjustments for ACM: If you want forecasts to match historical reports exactly, your finance team would need to stop adjusting the exchange rates monthly in the Advanced Currency Management settings, but this is rarely a desired business outcome.
0/9000

Hoje estive palestrando em Campinas, falando sobre Visualização de Dados na Era de Big Data e como isso faz a diferença no dia a dia no Meetup .NET Campinas.

 

Foi um grande prazer estar junto com outros palestrantes como Danielle Monteiro, MSc, Marcelo Adade, Wiluey Sousa, Igor Santos de Paula e Roberto Fonseca falando na trilha de Data Platform.

 

#Analytics #Data #Platform #Tableau #Microsoft

 

1 个回答
0/9000

Esse fim de semana(16/08 á 18/06) irá acontecer o Startup Weekend - AI Edition!

 

Já imaginou ter a oportunidade de ter a concepção e o ponta pé inicial para o seu negócio em 36 horas? Parece loucura, mas e se eu te falar que é possivel?

 

Através de uma metodologia de inovação aberta e ambiente propício para testes, os resultados podem ser incríveis!

 

E é mais incrivel ter a honra de novamente ser um dos mentores na concepção do produto para Decision Science & Analytics!

 

Mais informações em:

http://communities.techstars.com/brazil/sao-paulo/startup-weekend/14680

 

#Analytics #Data #Platform #Tableau

 

Startup Weekend Artificial Intelligence - Dasa Innovation Hub

1 个回答
0/9000

Hi DataFam,

 

I have a column 'X' in my dataset, the data in 'X' is of HTML and normal text type. I want to show normal text for the column in the summary table visualization. How to convert HTML data to normal text in Tableau?

 

#html #tableau ⌗visualization ⌗data

 

Thanks in Advance,

Akshara.

9 个回答
  1. 2023年1月31日 20:55

    So, the calculation is modified only slightly to account for the = or # characters.

    REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE([Unclear Data],CHAR(10),''),'(\d{4}:)',''),'<.*?>|&.*?;|[=]|[#]',' ')

    And it returns this when I modified the original data set:

    So, the calculation is modified only slightly to account for the = or # characters.REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE([Unclear Data],CHAR(10),''),'(\d{4}:)',''),'<.*?>|&.*?As to usage of CHAR(10) and '(\d{4}:) - you have at least one occurrence where there's a carriage return in the string but not all of the strings have them. CHAR(10) is the code that represents a carriage return. So, the first (most inner) REGEXP_REPLACE looks for that carriage return (which is not visible) and eliminates it so that the end part of the calculation works. For the capture group of (\d{4}:) in the second REGEXP_REPLACE it is used to remove those 4-digit (not letters) instances that you had in the very first row of the data example. There were a number of items like 1234: or 5678: etc. The capture group looks for just 4 digits, starting from the colon and then removes them. The very last REGEXP_REPLACE, the outer one, is doing all the heavy lifting. In Regex, the pipe | symbol is an 'or' operator. So that last piece '<.*?>|&.*?;|[=]|[#]' has four different patterns for the regex engine to look for and eliminate. The first one looks for HTML tags, the second one looks for any string values between the & and ; the last two are your most recent need and it's just simply [=] | [#] Hope that helps! Best, Don

0/9000

Hi

My first post, This is a question based on the #Data Dev Live Stream : Creating a Write back extension from start to finish. I have initialized my extension in the JS file. Also added an Event Listener on the work sheet to raise an event when the mark selection change. My Event Listener works and calls the function, but the event data passed is empty. Not sure where I am going wrong.

I am using tableau desktop 2019.4

Please help.

 

Event listener not returning the event data

1 个回答
  1. 2020年6月17日 15:39

    Hi Sheetal,

     

    Your code looks great! My guess would be that you are clicking on the headers on your worksheet instead of clicking on the actual marks on your worksheet, i.e. clicking on "Tables" instead of clicking on the bar. Try clicking on the mark itself and see if you get data. If that's the case then know that this will be fixed in 2020.3.

     

    Take care,

    Keshia

0/9000

Dear all,

I practice Tableau, there is some question need help.

I think it may calculation by LOD, but I not proficient this function.

Like this image, we want sum value in different team and type.

 

How to sum different columns

 

Dose any idea to calculation this, please let us know.

Very thanks.

 

HK

15 个回答
0/9000

Hi everyone, there are some question about pair two point in each day, and how many pair happen and how many user pair in one month?

like this image

How to pair two point and count it?

 

I try this video method, but it only pair first and last.

Our data have pair many time in one day, so that really hard to count.

There are our simple data "Pair Point.xlsx"

Dose any idea to calculate it?

Wish somebody can help us thanks.

28 个回答
  1. 2019年11月15日 02:57

    Hi HongKai,

     

    I think it needs nested LOD expression to count pair users per month.

     

    <formula>

    Initial Char (this determines pair of points.)

    LEFT([Point], 1)

     

    # of Pair

    {FIXED [test_date], [Initial Char], [User ID]: IF ZN(COUNTD([Point])) = 2 THEN 1 ELSE 0 END}

     

    # of Pair User

    {FIXED DATETRUNC('month', [test_date]): COUNTD({FIXED DATETRUNC('month', [test_date]), [User ID]: IF SUM([Pair]) > 0 THEN MIN([User ID]) END})}

     

    <sample -- focused on Sep 2018>

    Hi HongKai, I think it needs nested LOD expression to count pair users per month. <formula>Initial Char (this determines pair of points.

     

    Please check attached workbook.

0/9000