Skip to main content Take our 5-minute Community Survey. Open now through 4/11/2025. Click here to participate.

Feed

Connect with fellow Trailblazers. Ask and answer questions to build your skills and network.

In our LWR portal , in desktop and ios - attachment is downloading but mobile publisher app (android) attachment not downloading "Attachment failed - Servlet"  .  Thanks in Advance

 

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

                        link.href = fullPdfLink;

                        link.target = '_self'; // also tried _blank still getting the same.

                        link.download = 'download.pdf';

                        link.click();

                        link.remove(); 

 

@* Experience Cloud * 

2 answers
  1. Today, 4:08 PM

    try removing link.download...I don't know if it will make a difference but I don't think it's necessary.

0/9000

So salesforce keeps changing things and what I am trying to do is a dynamic grouping but in a long form. So as an example: "{{concat(column(step_hbar_prod.selection, [\"value\"]),column(step_hbar_time.selection, [\"value\"])).asObject()}}", this works in a standard compare table. But if I wanted to do it long form with something like this where would the binding go? Replacing the current grouping with the dynamic groupings above in the static steps.  Chat GPT was no help.  

 

"q = load \"Renewal_Opp_Expanded\";\nq = filter q by date('Renewal_Month__c_Year', 'snapshot.MAX_Endpoint_Device_Count__c_bucket', 'Renewal_Month__c_Day') in [\"1 year ago\"..\"current year\"];\nq_C = filter q by ('StageName' not in [\"Closed (Lost)\", \"Closed (Won)\"]);\nq_B = filter q by 'StageName' == \"Closed (Won)\";\nq_D = filter q by 'StageName' == \"Closed (Won)\";\nq_D = filter q_D by ARR__c>0 and ARR_up_for_Renewal__c>0;\nq_E = filter q by 'StageName' == \"Closed (Lost)\";\nq = cogroup q by ('Renewal_Month__c_Year','Renewal_Month__c_Quarter','Renewal_Month__c_Month','renewal_month_month_str','snapshot.MAX_Endpoint_Device_Count__c_bucket') full, q_C by ('Renewal_Month__c_Year','Renewal_Month__c_Quarter','Renewal_Month__c_Month','renewal_month_month_str','snapshot.MAX_Endpoint_Device_Count__c_bucket') full, q_B by ('Renewal_Month__c_Year','Renewal_Month__c_Quarter','Renewal_Month__c_Month','renewal_month_month_str', 'snapshot.MAX_Endpoint_Device_Count__c_bucket') full, q_D by ('Renewal_Month__c_Year','Renewal_Month__c_Quarter','Renewal_Month__c_Month','renewal_month_month_str', 'snapshot.MAX_Endpoint_Device_Count__c_bucket') full, q_E by ('Renewal_Month__c_Year','Renewal_Month__c_Quarter','Renewal_Month__c_Month','renewal_month_month_str', 'snapshot.MAX_Endpoint_Device_Count__c_bucket');\nq = foreach q generate coalesce(q.'Renewal_Month__c_Year', q_C.'Renewal_Month__c_Year', q_B.'Renewal_Month__c_Year', q_D.'Renewal_Month__c_Year', q_E.'Renewal_Month__c_Year') as 'Renewal_Month__c_Year',coalesce(q.'Renewal_Month__c_Quarter', q_C.'Renewal_Month__c_Quarter', q_B.'Renewal_Month__c_Quarter', q_D.'Renewal_Month__c_Quarter', q_E.'Renewal_Month__c_Quarter') as 'Renewal_Month__c_Quarter',coalesce(q.'Renewal_Month__c_Month', q_C.'Renewal_Month__c_Month', q_B.'Renewal_Month__c_Month', q_D.'Renewal_Month__c_Month', q_E.'Renewal_Month__c_Month') as 'Renewal_Month__c_Month',coalesce(q.'renewal_month_month_str', q_C.'renewal_month_month_str', q_B.'renewal_month_month_str', q_D.'renewal_month_month_str', q_E.'renewal_month_month_str') as 'renewal_month_month_str', coalesce(q.'snapshot.MAX_Endpoint_Device_Count__c_bucket', q_C.'snapshot.MAX_Endpoint_Device_Count__c_bucket', q_B.'snapshot.MAX_Endpoint_Device_Count__c_bucket', q_D.'snapshot.MAX_Endpoint_Device_Count__c_bucket', q_E.'snapshot.MAX_Endpoint_Device_Count__c_bucket') as 'snapshot.MAX_Endpoint_Device_Count__c_bucket', sum(q.'ARR_up_for_Renewal__c') as 'ARR up for Renewal', sum(q_C.'ARR_up_for_Renewal__c') as 'Pending ARR', sum(q_B.'ARR_up_for_Renewal__c')  as 'Renewed ARR',sum(q_B.'Expansion_ARR__c') as 'Expansion ARR', sum(q_D.'Contraction_ARR__c') as 'Contraction ARR', sum(q_E.'ARR_up_for_Renewal__c') as 'Lost ARR';\nq = group q by ('Renewal_Month__c_Year','Renewal_Month__c_Quarter','Renewal_Month__c_Month','renewal_month_month_str', 'snapshot.MAX_Endpoint_Device_Count__c_bucket');\nq = foreach q generate case when 1==1 then 'Renewal_Month__c_Year' end as 'Renewal_Month__c', 'snapshot.MAX_Endpoint_Device_Count__c_bucket' as 'snapshot.MAX_Endpoint_Device_Count__c_bucket',sum('ARR up for Renewal') as 'ARR up for Renewal',sum('Pending ARR') as 'Pending ARR',sum('Renewed ARR') as 'Renewed ARR',sum('Expansion ARR') as 'Expansion ARR',sum('Contraction ARR') as 'Contraction ARR',sum('Lost ARR') as 'Lost ARR',(sum('Renewed ARR')+sum('Contraction ARR'))/(sum('ARR up for Renewal') - coalesce(sum('Pending ARR'),0)) as 'Gross Renewal Rate ($)';\nq = group q by ('Renewal_Month__c', 'snapshot.MAX_Endpoint_Device_Count__c_bucket');\nq = foreach q generate 'Renewal_Month__c' as 'Renewal_Month__c', 'snapshot.MAX_Endpoint_Device_Count__c_bucket' as 'snapshot.MAX_Endpoint_Device_Count__c_bucket',sum('ARR up for Renewal') as 'ARR up for Renewal',sum('Pending ARR') as 'Pending ARR',sum('Renewed ARR') as 'Renewed ARR',sum('Expansion ARR') as 'Expansion ARR',sum('Contraction ARR') as 'Contraction ARR',sum('Lost ARR') as 'Lost ARR',(sum('Renewed ARR')+sum('Contraction ARR'))/(sum('ARR up for Renewal') - coalesce(sum('Pending ARR'),0)) as 'Gross Renewal Rate ($)';\nq = order q by ('Renewal_Month__c' asc, 'snapshot.MAX_Endpoint_Device_Count__c_bucket' asc);",

1 answer
0/9000

We have a user that created a dashboard in lighting and shared with users that sit lower in the role hierarchy.  They are unable to view the dashboards ever though it was shared with the specific user.    Is there a way for these users to see the dashboards?  Does it have to be shared with the role instead of the individual user?   

3 answers
  1. Today, 4:05 PM

    And I'm able to run the reports separately

0/9000

I'm working on the "customize record pages" trailhead and it's telling me to open the "Edge Communications

." in sales under accounts but I don't have that as an option. I didn't see anywhere where it told me to create that so I'm not sure why I wouldn't see it or how I should proceed so I can complete this trail. 

Doing the Customize Record pages and account doesn't show up

 

 

Screenshot 2025-04-14 110019.png

 

 

 

#Trailhead Challenges  #Trailhead

0/9000

We have this situation coming up from time where we have a donor who makes a pledge commitment. We use accrual accounting, so the pledge is booked on the commitment date. The donor will give a time or two via check. But then they change and submit a pledge payment via Classy which means it's creating it's own opportunity. I'm wondering how others solve this issue without reducing the amount of the original pledge and creating a second opportunity? For accounting purposes, we really don't want to do that as it also throws off our pledge numbers.

2 answers
  1. Today, 4:03 PM

     I created a closed lost stage "closed lost-paying a pledge" on the opportunity that I reserve for this scenario. I create a payment on the original pledge and pull in the Classy transaction ID. Then I mark the opportunity created from the Classy payment as closed lost-paying a pledge. We omit closed lost payments on our reports and we don't pull any accounting information on opportunities with this status. I have been doing this for years and honestly, I don't believe that we have ever needed to refer back to the extraneous opportunity so it's probably fine to delete it. But this way I have it in case I ever need the data for some reason.

0/9000

Business user does not have edit rights to a closed opp.   But Business user want to closed opportunity & update it if necessary or if there is need. But SF Manager does not want all Opty once it is closed.     User can  clone the opp (RT Flow) into a new opp and the newly created opp will have all the correct details. The old opp (from which new was cloned) become irrelevant now and we need to exclude it from all calculations in reports, any fields calculations, etc. 

  Can we (option #1)build this as part of flow where user indicates if the new opp needs to replace the cloned opp or is an entirely different opp?  If that is not possible, (option #2) we can have them check a box on the original/old opp which would indicate to the system to exclude that opp from all calculations.

 

How to achieve this ask ? How to make system understand to exclude old opty from all reports & only include cloned opty in all reports ?

 

 

@* Sales Cloud - Best Practices * 

1 answer
0/9000

I understand that in Pro edition, I can only run one scheduled report per day, as shown here. My question is since I have a limit of 200 snapshot reports, how do I create and run more than 7 reports (one for each day)?     It's odd how they implement a time of day dropdown select, but I can only ever choose one time - 1:00am - or when there is no option, I can't run a report on that day.     I'm trying to setup a few weekly and monthly snaps to keep track of changes over time, but only being able to schedule 7 is very limiting, especially when I cant even run a report on the first day of a month because that report could conflict with a weekly report I have running on a Tuesday. Am I not understanding this correctly? I must be missing something, right?    @Reports & Dashboards 

1 answer
0/9000

I have all access to Service Resource Object but not able to create a record.  I am in a Service Cloud dev org. but for some reason not able to create a record.  Any ideas of what other permissions I may need? 

 

#Trailhead Challenges  #Service Cloud

0/9000

Hello,    I am not great at building flows and it's been well over a year since I have tried building one so I am hitting a number of frustrations. I am trying to build a flow where if a customer replies to a case that has since been closed, a new case will be opened instead. I'm surprised that there doesn't seem to be a help article or anything anywhere describing how to build this, all I was able to find was if I wanted to re-open the closed case which isn't what i'm looking for. If someone could walk me through this i'd truly appreciate it.   

@* Service Cloud * 

2 answers
0/9000

We have two types of Agents: A1 and A2. A1 Agents work on Cases where the owner is the A1 Queue (Cases are routed and assigned to agents through the omni-channel widget). A2 Agents work on Cases where the owner is the A2 Queue.

I am looking for a way to implement, using out-of-the-box reassignment, the transfer of A1 Cases to the A2 Queue. This would allow A2 Agents to work on them if no A2 Cases are available.    @* Service Cloud * 

2 answers
0/9000